From 97094231a574b6824ec517705607d803fefc7e3b Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 17 Dec 1997 10:50:23 +0000 Subject: [PATCH] Modifiche aga git-svn-id: svn://10.65.10.50/trunk@5760 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- xi/makefile.sgi | 2 +- xi/xi.c | 60 +++++++++++++++++++++++++++++++++---------------- xi/xi.h | 15 ++++++++++--- xi/xilm.c | 24 ++++++++++++-------- xi/xistx.c | 23 +++++++++++-------- xi/xitext.c | 4 ++-- xi/xiutils.c | 12 +++++++++- 7 files changed, 96 insertions(+), 44 deletions(-) diff --git a/xi/makefile.sgi b/xi/makefile.sgi index 49271f883..9db34a019 100755 --- a/xi/makefile.sgi +++ b/xi/makefile.sgi @@ -64,7 +64,7 @@ TKLDLIBS = -L$(XVTLIBP) -l$(LIBUI) -l$(LIBHLP) -l$(LIBTK) -lMrm -lXm -lXt -lX11 # Imakefile for 'xpoxm' archive. # # $RCSfile: makefile.sgi,v $ -# $Revision: 1.1.1.1 $ $Date: 1997-12-17 10:43:21 $ +# $Revision: 1.2 $ $Date: 1997-12-17 10:49:40 $ # # Relative paths to build area root directory, source and objects files. diff --git a/xi/xi.c b/xi/xi.c index 97b1b743d..943fae2b4 100755 --- a/xi/xi.c +++ b/xi/xi.c @@ -1022,11 +1022,16 @@ draw_field_button(XI_OBJ *xi_obj) xvt_dwin_draw_rect(win, &rct); } #endif - if ((BOOLEAN)xi_get_pref(XI_PREF_3D_LOOK)) - xi_draw_3d_rect(win, &r, fd->down, 2, stxd->hilight_color, - stxd->attrib & XI_ATR_ENABLED ? stxd->back_color : stxd->disabled_back_color, stxd->shadow_color); - else - { +if ((BOOLEAN)xi_get_pref(XI_PREF_3D_LOOK)) +{ + const COLOR color_light = aga_get_pref(AGA_PREF_BTN_COLOR_LIGHT); + const COLOR color_ctrl = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); + const COLOR color_dark = aga_get_pref(AGA_PREF_BTN_COLOR_DARK); + + xi_draw_3d_rect(win, &r, fd->down, 2, color_light, color_ctrl, color_dark); +} +else +{ xi_set_cbrush(win, &white_cbrush); xi_set_cpen(win, &hollow_cpen); xi_draw_rect(win, &r); @@ -1448,7 +1453,13 @@ draw_list_button(WINDOW win, RCT *rct, BOOLEAN down) r.bottom--; r.right--; if ((BOOLEAN)xi_get_pref(XI_PREF_3D_LOOK)) - xi_draw_3d_rect(win, &r, down, 2, 0L, 0L, 0L); + { + const COLOR color_light = aga_get_pref(AGA_PREF_BTN_COLOR_LIGHT); + const COLOR color_ctrl = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); + const COLOR color_dark = aga_get_pref(AGA_PREF_BTN_COLOR_DARK); + + xi_draw_3d_rect(win, &r, down, 2, color_light, color_ctrl, color_dark); + } else { xi_set_cbrush(win, &white_cbrush); @@ -2883,6 +2894,9 @@ BOOLEAN checked, BOOLEAN box_only) WINDOW win; XI_OBJ *itf; XI_ITF_DATA *id; + COLOR color_light = 0L; + COLOR color_ctrl = 0L; + COLOR color_dark = 0L; if (! visible) return; @@ -2893,6 +2907,12 @@ BOOLEAN checked, BOOLEAN box_only) win = xi_get_window(itf); xvt_dwin_set_clip( win, NULL ); bd = xi_obj->v.btn; + if (bd->type == XIBT_BUTTON) + { + color_light = aga_get_pref(AGA_PREF_BTN_COLOR_LIGHT); + color_ctrl = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); + color_dark = aga_get_pref(AGA_PREF_BTN_COLOR_DARK); + } fore_color = COLOR_BLACK; fore_cp = black_cpen; if (bd->fore_color) @@ -2944,7 +2964,7 @@ BOOLEAN checked, BOOLEAN box_only) xvt_dwin_draw_rect(win, &rct); } #endif - xi_draw_3d_rect(win, &r, (BOOLEAN)(down || bd->checked), 2, 0L, 0L, 0L); + xi_draw_3d_rect(win, &r, (BOOLEAN)(down || bd->checked), 2, color_light, color_ctrl, color_dark); if (up_icon_rid) { int x, y; @@ -2956,16 +2976,13 @@ BOOLEAN checked, BOOLEAN box_only) xi_inflate_rect(&r2, -2); xi_set_clip(win, &r2); if (down) - xi_draw_icon(win, x, y + 1, down_icon_rid, COLOR_BLACK, - xi_get_pref(XI_PREF_COLOR_CTRL)); + xi_draw_icon(win, x, y + 1, down_icon_rid, COLOR_BLACK, color_ctrl); else { if (enabled || ! disabled_icon_rid) - xi_draw_icon(win, x, y, up_icon_rid, COLOR_BLACK, - xi_get_pref(XI_PREF_COLOR_CTRL)); - else - xi_draw_icon(win, x, y, disabled_icon_rid, COLOR_BLACK, - xi_get_pref(XI_PREF_COLOR_CTRL)); + xi_draw_icon(win, x, y, up_icon_rid, COLOR_BLACK, color_ctrl); + else + xi_draw_icon(win, x, y, disabled_icon_rid, COLOR_BLACK, color_ctrl); } xi_set_clip(win, NULL); } @@ -2973,7 +2990,7 @@ BOOLEAN checked, BOOLEAN box_only) { unsigned long attrib; RCT text_rect; - COLOR color; + // COLOR color; FONT_OBJ* fontp; attrib = XI_ATR_VCENTER | XI_ATR_HCENTER | XI_ATR_VISIBLE; @@ -2990,8 +3007,7 @@ BOOLEAN checked, BOOLEAN box_only) xi_set_xvt_font(win, fontp, FALSE); else xi_set_xvt_font(win, &xi_sysfont, FALSE); - color = (COLOR)xi_get_pref(XI_PREF_COLOR_CTRL); - xi_set_xvt_back_color(win, color); + xi_set_xvt_back_color(win, color_ctrl); xi_draw_clipped_text(win, text, &text_rect, &text_rect, attrib, FALSE, 0, -1); } if ((focus) || (xi_obj->v.btn->packed)) @@ -3224,8 +3240,14 @@ BOOLEAN checked, BOOLEAN box_only) xvt_font_destroy( font_id ); } else xi_set_xvt_font(win, fontp, FALSE); - color = (COLOR)xi_get_pref(XI_PREF_COLOR_CTRL); - xi_set_xvt_back_color(win, color); + + { + DRAW_CTOOLS ct; + xi_get_draw_ctools(win, &ct); + ct.opaque_text = FALSE; + xi_set_draw_ctools(win, &ct); + } + xi_draw_clipped_text(win, text, &tbrct, &tbrct, attrib, FALSE, 0, -1); /* Draw focus line, or erase focus line */ diff --git a/xi/xi.h b/xi/xi.h index b50dc837c..846a59afc 100755 --- a/xi/xi.h +++ b/xi/xi.h @@ -285,8 +285,17 @@ typedef enum XI_PREF_LASTPREF /* should always be last */ } XI_PREF_TYPE; - +typedef enum +{ + AGA_PREF_BTN_COLOR_LIGHT, + AGA_PREF_BTN_COLOR_CTRL, + AGA_PREF_BTN_COLOR_DARK, + AGA_PREF_LASTPREF /* should always be last */ +} +AGA_PREF_TYPE; + #define XI_NBR_PREFERENCES XI_PREF_LASTPREF +#define AGA_NBR_PREFERENCES AGA_PREF_LASTPREF /********************************** * XI Object definition structures @@ -1355,11 +1364,11 @@ Tree module void XVT_CALLCONV1 xi_tree_dbg XVT_CC_ARGS((char *title)); void XVT_CALLCONV1 xi_tree_check_sanity XVT_CC_ARGS((char *title)); void XVT_CALLCONV1 xi_tree_reg_error_fcn XVT_CC_ARGS((void (* fcn)(void))); - + void XVT_CALLCONV1 aga_set_pref XVT_CC_ARGS((AGA_PREF_TYPE preftype, long value)); + long XVT_CALLCONV1 aga_get_pref XVT_CC_ARGS((AGA_PREF_TYPE preftype)); #ifdef __cplusplus } // End of extern "C" #endif #endif /* INCL_XI */ - diff --git a/xi/xilm.c b/xi/xilm.c index c307c28fd..3c0fc396c 100755 --- a/xi/xilm.c +++ b/xi/xilm.c @@ -1362,6 +1362,9 @@ lm_draw_3d_rect(LM_DATA *lmp, RCT *rctp, BOOLEAN well, int depth, BOOLEAN adj_v) { RCT r; BOOLEAN left, right; + const COLOR color_light = aga_get_pref(AGA_PREF_BTN_COLOR_LIGHT); + const COLOR color_ctrl = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); + const COLOR color_dark = aga_get_pref(AGA_PREF_BTN_COLOR_DARK); r = *rctp; @@ -1378,10 +1381,8 @@ lm_draw_3d_rect(LM_DATA *lmp, RCT *rctp, BOOLEAN well, int depth, BOOLEAN adj_v) right = lm_adj_h(lmp, &r.right); if (! left && ! right) return; - xi_draw_3d_rect(lmp->win, &r, well, depth, 0L, 0L, 0L); + xi_draw_3d_rect(lmp->win, &r, well, depth, color_light, color_ctrl, color_dark); } - - /*------------------------------------------------------------------------- function: lm_draw_icon lmp: current lmp @@ -1589,7 +1590,7 @@ BOOLEAN down, BOOLEAN clear_button) r.right = min(r.right, col_rct.right); xi_get_draw_ctools(lmp->win, &ct); ct.fore_color = lmp->enabled_color; - ct.back_color = xi_get_pref(XI_PREF_COLOR_CTRL); + ct.back_color = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); ct.opaque_text = TRUE; if (lmp->row_colors[row]) ct.fore_color = lmp->row_colors[row]; @@ -1598,7 +1599,7 @@ BOOLEAN down, BOOLEAN clear_button) xi_set_draw_ctools(lmp->win, &ct); lm_draw_icon(lmp, r.left + cell_btn_icon_x, r.top + cell_btn_icon_y + down, button_icon_rid ? button_icon_rid : (int)xi_get_pref(XI_PREF_COMBO_ICON), - &r, clip_rct, TRUE, COLOR_BLACK, xi_get_pref(XI_PREF_COLOR_CTRL)); + &r, clip_rct, TRUE, COLOR_BLACK, aga_get_pref(AGA_PREF_BTN_COLOR_CTRL)); } @@ -2041,7 +2042,7 @@ draw_column_headings(LM_DATA *lmp, RCT *actual_rct) back_color = lmp->disabled_back_color; } if (col_data->heading_well || col_data->heading_platform) - back_color = xi_get_pref(XI_PREF_COLOR_CTRL); + back_color = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); xi_set_xvt_fore_color(win, fore_color); xi_set_xvt_back_color(win, back_color); } @@ -2106,7 +2107,7 @@ draw_column_headings(LM_DATA *lmp, RCT *actual_rct) back_color = lmp->disabled_back_color; } if (col_data->heading_well || col_data->heading_platform) - back_color = xi_get_pref(XI_PREF_COLOR_CTRL); + back_color = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); lm_draw_icon(lmp, cell_rct.left + col_data->icon_x, cell_rct.top + col_data->icon_y, col_data->icon_rid, &cell_rct, actual_rct, FALSE, fore_color, back_color); @@ -2425,9 +2426,15 @@ TO OPTIMIZE BACKGROUND DRAWING, USE NEXT TWO LINES rct.top = ri->prct.top; rct.bottom = ri->prct.bottom; if (column_data->column_well || column_data->column_platform) + { + const COLOR color_light = aga_get_pref(AGA_PREF_BTN_COLOR_LIGHT); + const COLOR color_ctrl = aga_get_pref(AGA_PREF_BTN_COLOR_CTRL); + const COLOR color_dark = aga_get_pref(AGA_PREF_BTN_COLOR_DARK); + xi_draw_3d_rect(win, &rct, (BOOLEAN)(CELL_IS_SELECTED(lmp, row, col) ? ! column_data->column_well : column_data->column_well), 2, 0L, 0L, 0L); } + } } #else for (col = 0; col < lmp->nbr_columns; ++col) @@ -5765,7 +5772,7 @@ Up arrow and down arrow work. If the focus is on a cell, the focus stays Page up and down should work. If the focus is on the last editable cell, and tab_wrap is set, then the focus moves to the next row. -If the focus is on the last editable cell, and tab_wrap is not set, then +If the focus is the focus move to the current row. Have an option on a list by list basis, enter selects if a row has the focus. Enter will act like a double click selection. @@ -5803,4 +5810,3 @@ make readonly cells need colors for static text want ability on XVT/CH to have single character fields. Eliminate the [ and ]. */ - diff --git a/xi/xistx.c b/xi/xistx.c index 633be131b..202ce2e32 100755 --- a/xi/xistx.c +++ b/xi/xistx.c @@ -264,7 +264,7 @@ redraw_stx(STX stx, BOOLEAN update, BOOLEAN inside_only) ct.pen = hollow_cpen; inside_only = TRUE; } - + ct.opaque_text = FALSE; xi_set_draw_ctools(stxp->win, &ct); /* TODO moved following two lines down */ @@ -321,7 +321,10 @@ redraw_stx(STX stx, BOOLEAN update, BOOLEAN inside_only) else { /* draw cell text */ + const int old_bottom = rct.bottom; get_text_rect(stx, &rct); + rct.bottom = old_bottom; + xi_draw_clipped_text(stxp->win, stxp->text, &rct, &rct, stxp->attrib, TRUE, 0, -1); } @@ -456,13 +459,15 @@ do_stx_cb(STX stx, STX_CB_TYPE cb_reason, EVENT *ep) void stx_focus_cb(long stx, BOOLEAN set) { - xvt_errmsg_sig_if(!(set != STXP(stx)->has_focus), - NULL_WIN, SEV_FATAL, ERR_ASSERT_4, "30101", - 30101, "Internal focus error"); - if (set) - stx_start_edit(stx); - else - stx_stop_edit(stx); + if (set != STXP(stx)->has_focus) + { + if (set) + stx_start_edit(stx); + else + stx_stop_edit(stx); + } + + } /* @@ -1137,4 +1142,4 @@ stx_get_inside_rect( STX stx, RCT* rect ) xi_inflate_rect(rect, -2); return rect; } - + diff --git a/xi/xitext.c b/xi/xitext.c index 17a51ca77..dedb34629 100755 --- a/xi/xitext.c +++ b/xi/xitext.c @@ -292,7 +292,8 @@ BOOLEAN do_border, BOOLEAN inverted) ct->pen.pat = do_border ? PAT_SOLID : PAT_HOLLOW; CTOS_END; #endif - ct->opaque_text = TRUE; + ct->opaque_text = FALSE; // Minchia! + *font = *txt->font; ct->mode = M_COPY; return(ct); @@ -1416,4 +1417,3 @@ txt_set_text(TXT_DATA *txt, char *s) - diff --git a/xi/xiutils.c b/xi/xiutils.c index f0365f6d1..f0e0fa804 100755 --- a/xi/xiutils.c +++ b/xi/xiutils.c @@ -470,6 +470,7 @@ static long xi_preferences[XI_NBR_PREFERENCES] = #endif }; +static long aga_preferences[AGA_NBR_PREFERENCES] = { COLOR_LTGRAY, COLOR_GRAY, COLOR_DKGRAY}; RCT big_clip = { @@ -956,6 +957,16 @@ void xi_set_pref(XI_PREF_TYPE preftype, long value) xi_preferences[preftype] = value; } +long aga_get_pref(AGA_PREF_TYPE preftype) +{ + return aga_preferences[preftype]; +} + +void aga_set_pref(AGA_PREF_TYPE preftype, long value) +{ + aga_preferences[preftype] = value; +} + void xi_set_font_id(XVT_FNTID font_id) { @@ -4340,4 +4351,3 @@ BOOLEAN xi_get_xil_pref( XI_OBJ* obj ) return FALSE; } -