Add support for accent borders to all managers. Add more combobox string

methods.
This commit is contained in:
ramiro%netscape.com 1998-10-09 04:33:32 +00:00
Родитель 0d6f75e389
Коммит 1dfaa4ce03
26 изменённых файлов: 284 добавлений и 179 удалений

Просмотреть файл

@ -39,7 +39,6 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
#define XmNbutton3DownCallback "button3DownCallback"
#define XmNbutton3UpCallback "button3UpCallback"
#define XmNaccentBorderThickness "accentBorderThickness"
#define XmNarmBackground "armBackground"
#define XmNarmForeground "armForeground"
#define XmNarmOffset "armOffset"
@ -63,7 +62,6 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
#define XmNraisedPixmapMask "raisedPixmapMask"
#define XmNtransparentCursor "transparentCursor"
#define XmCAccentBorderThickness "AccentBorderThickness"
#define XmCArmBackground "ArmBackground"
#define XmCArmForeground "ArmForeground"
#define XmCArmOffset "ArmOffset"

Просмотреть файл

@ -39,7 +39,6 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
/*----------------------------------------------------------------------*/
#define XfeInheritLayoutPixmap ((XtWidgetProc) _XtInherit)
#define XfeInheritDrawPixmap ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawAccentBorder ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawUnderline ((XfeExposeProc) _XtInherit)
#define XfeInheritArmTimeout ((XtTimerCallbackProc) _XtInherit)

Просмотреть файл

@ -227,6 +227,7 @@ _XFE_WIDGET_CLASS_RECORD(divider,Divider) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -303,6 +303,7 @@ _XFE_WIDGET_CLASS_RECORD(dynamicmanager,DynamicManager) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -125,6 +125,7 @@ static void UpdateBoundary (Widget);
static void LayoutWidget (Widget);
static void UpdateChildrenInfo (Widget);
static void DrawShadow (Widget,XEvent *,Region,XRectangle *);
static void DrawAccentBorder (Widget,XEvent *,Region,XRectangle *);
/*----------------------------------------------------------------------*/
/* */
@ -281,6 +282,17 @@ static XtResource resources[] =
(XtPointer) 2
},
/* Accent border resources */
{
XmNaccentBorderThickness,
XmCAccentBorderThickness,
XmRHorizontalDimension,
sizeof(Dimension),
XtOffsetOf(XfeManagerRec , xfe_manager . accent_border_thickness),
XmRImmediate,
(XtPointer) 0
},
/* Margin resources */
{
XmNmarginBottom,
@ -567,6 +579,14 @@ static XmSyntheticResource syn_resources[] =
_XmFromVerticalPixels,
_XmToVerticalPixels
},
{
XmNaccentBorderThickness,
sizeof(Dimension),
XtOffsetOf(XfeManagerRec , xfe_manager . accent_border_thickness),
_XmFromHorizontalPixels,
_XmToHorizontalPixels
},
};
/*----------------------------------------------------------------------*/
@ -676,6 +696,7 @@ _XFE_WIDGET_CLASS_RECORD(manager,Manager) =
NULL, /* draw_background */
DrawShadow, /* draw_shadow */
NULL, /* draw_components */
DrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},
};
@ -749,12 +770,15 @@ CoreClassPartInit(WidgetClass wc)
/* Rendering methods */
_XfeResolve(cc,sc,xfe_manager_class,draw_background,
XfeInheritDrawBackground);
_XfeResolve(cc,sc,xfe_manager_class,draw_components,
XfeInheritDrawComponents);
_XfeResolve(cc,sc,xfe_manager_class,draw_shadow,
XfeInheritDrawShadow);
_XfeResolve(cc,sc,xfe_manager_class,draw_components,
XfeInheritDrawComponents);
_XfeResolve(cc,sc,xfe_manager_class,draw_accent_border,
XfeInheritDrawAccentBorder);
}
/*----------------------------------------------------------------------*/
static void
@ -862,10 +886,13 @@ CoreExpose(Widget w,XEvent *event,Region region)
{
/* Make sure the widget is realized before drawing ! */
if (!XtIsRealized(w)) return;
/* Draw Background */
_XfeManagerDrawBackground(w,event,region,&_XfemBoundary(w));
/* Draw Accent Border */
_XfeManagerDrawAccentBorder(w,event,region,&_XfemBoundary(w));
/* Draw Shadow */
_XfeManagerDrawShadow(w,event,region,&_XfemBoundary(w));
@ -1102,12 +1129,13 @@ CoreSetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs)
}
/* Changes that affect the layout and geometry */
if ((_XfemMarginTop(nw) != _XfemMarginTop(ow)) ||
(_XfemMarginBottom(nw) != _XfemMarginBottom(ow)) ||
(_XfemMarginLeft(nw) != _XfemMarginLeft(ow)) ||
(_XfemMarginRight(nw) != _XfemMarginRight(ow)) ||
(_XfemShadowThickness(nw) != _XfemShadowThickness(ow)) ||
(_XfemUnitType(nw) != _XfemUnitType(ow)))
if ((_XfemMarginTop(nw) != _XfemMarginTop(ow)) ||
(_XfemMarginBottom(nw) != _XfemMarginBottom(ow)) ||
(_XfemMarginLeft(nw) != _XfemMarginLeft(ow)) ||
(_XfemMarginRight(nw) != _XfemMarginRight(ow)) ||
(_XfemShadowThickness(nw) != _XfemShadowThickness(ow)) ||
(_XfemAccentBorderThickness(nw) != _XfemAccentBorderThickness(ow)) ||
(_XfemUnitType(nw) != _XfemUnitType(ow)))
{
_XfemConfigFlags(nw) |= XfeConfigGLE;
}
@ -1859,6 +1887,59 @@ DrawShadow(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
_XfemShadowType(w));
}
/*----------------------------------------------------------------------*/
static void
DrawAccentBorder(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
{
if (_XfemAccentBorderThickness(w) == 0)
{
return;
}
printf("DrawAccentBorder(%s,%d)\n",
XtName(w),_XfemAccentBorderThickness(w));
/* The shadow thickness can be used to tweak the raised effect */
switch(_XfemAccentBorderThickness(w))
{
case 2:
case 4:
XfeDrawRectangle(XtDisplay(w),
_XfeWindow(w),
_XfemHighlightGC(w),
0,
0,
_XfeWidth(w),
_XfeHeight(w),
_XfemAccentBorderThickness(w) / 2);
_XmDrawShadows(XtDisplay(w),
_XfeWindow(w),
_XfemTopShadowGC(w),
_XfemBottomShadowGC(w),
_XfemAccentBorderThickness(w) / 2,
_XfemAccentBorderThickness(w) / 2,
_XfeWidth(w) - 2 * (_XfemAccentBorderThickness(w) / 2),
_XfeHeight(w) - 2 * (_XfemAccentBorderThickness(w) / 2),
_XfemAccentBorderThickness(w) / 2,
XmSHADOW_OUT);
break;
default:
XfeDrawRectangle(XtDisplay(w),
_XfeWindow(w),
_XfemHighlightGC(w),
0,
0,
_XfeWidth(w),
_XfeHeight(w),
_XfemAccentBorderThickness(w));
break;
}
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
@ -2288,6 +2369,20 @@ _XfeManagerDrawShadow(Widget w,
}
}
/*----------------------------------------------------------------------*/
/* extern */ void
_XfeManagerDrawAccentBorder(Widget w,
XEvent * event,
Region region,
XRectangle * rect)
{
XfeManagerWidgetClass mc = (XfeManagerWidgetClass) XtClass(w);
if (mc->xfe_manager_class.draw_accent_border)
{
(*mc->xfe_manager_class.draw_accent_border)(w,event,region,rect);
}
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */

Просмотреть файл

@ -82,6 +82,7 @@ typedef struct
XfeExposeProc draw_background; /* draw_background */
XfeExposeProc draw_shadow; /* draw_shadow */
XfeExposeProc draw_components; /* draw_components */
XfeExposeProc draw_accent_border; /* draw_accent_border */
XtPointer extension; /* extension */
@ -135,6 +136,9 @@ typedef struct _XfeManagerPart
Dimension min_width; /* Min width */
Dimension min_height; /* Min height */
/* Accent border resources */
Dimension accent_border_thickness;/* Accent border thickness*/
/* Margin resources */
Dimension margin_left; /* Margin Left */
Dimension margin_right; /* Margin Right */
@ -259,13 +263,19 @@ _XfeManagerDrawBackground (Widget w,
XRectangle * clip_rect);
/*----------------------------------------------------------------------*/
extern void
_XfeManagerDrawShadow (Widget w,
XEvent * event,
Region region,
XRectangle * clip_rect);
/*----------------------------------------------------------------------*/
extern void
_XfeManagerDrawComponents (Widget w,
XEvent * event,
Region region,
XRectangle * clip_rect);
/*----------------------------------------------------------------------*/
extern void
_XfeManagerDrawShadow (Widget w,
_XfeManagerDrawAccentBorder (Widget w,
XEvent * event,
Region region,
XRectangle * clip_rect);
@ -588,6 +598,9 @@ _XfeManagerApplyProcToChildren (Widget w,
#define _XfemTotalStaticHeight(w) \
(((XfeManagerWidget) (w))->xfe_manager . total_static_height)
/*----------------------------------------------------------------------*/
#define _XfemAccentBorderThickness(w) \
(((XfeManagerWidget) (w))->xfe_manager . accent_border_thickness)
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
@ -647,16 +660,20 @@ _XfeManagerApplyProcToChildren (Widget w,
/* */
/*----------------------------------------------------------------------*/
#define _XfemOffsetLeft(w) (_XfemShadowThickness(w) + \
_XfemMarginLeft(w))
_XfemMarginLeft(w) + \
_XfemAccentBorderThickness(w))
/*----------------------------------------------------------------------*/
#define _XfemOffsetRight(w) (_XfemShadowThickness(w) + \
_XfemMarginRight(w))
_XfemMarginRight(w) + \
_XfemAccentBorderThickness(w))
/*----------------------------------------------------------------------*/
#define _XfemOffsetTop(w) (_XfemShadowThickness(w) + \
_XfemMarginTop(w))
_XfemMarginTop(w) + \
_XfemAccentBorderThickness(w))
/*----------------------------------------------------------------------*/
#define _XfemOffsetBottom(w) (_XfemShadowThickness(w) + \
_XfemMarginBottom(w))
_XfemMarginBottom(w) + \
_XfemAccentBorderThickness(w))
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/

Просмотреть файл

@ -307,6 +307,7 @@ _XFE_WIDGET_CLASS_RECORD(oriented,Oriented) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -649,6 +649,7 @@ _XFE_WIDGET_CLASS_RECORD(pane,Pane) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
DrawComponents, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -39,24 +39,26 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
#define XmNenterCallback "enterCallback"
#define XmNleaveCallback "leaveCallback"
#define XmNaccentBorderThickness "accentBorderThickness"
#define XmNbufferType "bufferType"
#define XmNcursor "cursor"
#define XmNcursorOn "cursorOn"
#define XmNinstancePointer "instancePointer"
#define XmNnumPopupChildren "numPopupChildren"
#define XmNpointerInside "pointerInside"
#define XmNpopupChildren "popupChildren"
#define XmNpreferredHeight "preferredHeight"
#define XmNpreferredWidth "preferredWidth"
#define XmNpretendSensitive "pretendSensitive"
#define XmNusePreferredHeight "usePreferredHeight"
#define XmNusePreferredWidth "usePreferredWidth"
#define XmNpreferredHeight "preferredHeight"
#define XmNpreferredWidth "preferredWidth"
#define XmNbufferType "bufferType"
#define XmNcursor "cursor"
#define XmNpointerInside "pointerInside"
#define XmNcursorOn "cursorOn"
#define XmNinstancePointer "instancePointer"
#define XmNpopupChildren "popupChildren"
#define XmNnumPopupChildren "numPopupChildren"
#define XmCAccentBorderThickness "AccentBorderThickness"
#define XmCBufferType "BufferType"
#define XmCInstancePointer "InstancePointer"
#define XmCPretendSensitive "PretendSensitive"
#define XmCUsePreferredHeight "UsePreferredHeight"
#define XmCUsePreferredWidth "UsePreferredWidth"
#define XmCBufferType "BufferType"
#define XmCInstancePointer "InstancePointer"
#define XmRBufferType "BufferType"

Просмотреть файл

@ -41,12 +41,13 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
/* */
/*----------------------------------------------------------------------*/
#define XfeInheritBitGravity ((XfeBitGravityType) _XtInherit)
#define XfeInheritDrawAccentBorder ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawBackground ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawComponents ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawShadow ((XfeExposeProc) _XtInherit)
#define XfeInheritLayoutComponents ((XtWidgetProc) _XtInherit)
#define XfeInheritPreferredGeometry ((XfeGeometryProc) _XtInherit)
#define XfeInheritUpdateBoundary ((XtWidgetProc) _XtInherit)
#define XfeInheritLayoutComponents ((XtWidgetProc) _XtInherit)
#define XfeInheritDrawBackground ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawShadow ((XfeExposeProc) _XtInherit)
#define XfeInheritDrawComponents ((XfeExposeProc) _XtInherit)
/*----------------------------------------------------------------------*/
/* */

Просмотреть файл

@ -370,7 +370,7 @@ _XFE_WIDGET_CLASS_RECORD(caption,Caption) =
{
XfeInheritBitGravity, /* bit_gravity */
PreferredGeometry, /* preferred_geometry */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateChildrenInfo, /* update_children_info */
XfeInheritLayoutWidget, /* layout_widget */
AcceptStaticChild, /* accept_static_child */
@ -383,6 +383,7 @@ _XFE_WIDGET_CLASS_RECORD(caption,Caption) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
DrawComponents, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -41,6 +41,8 @@ CSRCS = \
REQUIRES = \
XfeCaption \
XfeToolBar \
XfeComboBox \
XfeWidgets

Просмотреть файл

@ -192,7 +192,7 @@ _XFE_WIDGET_CLASS_RECORD(textcaption,TextCaption) =
{
XfeInheritBitGravity, /* bit_gravity */
XfeInheritPreferredGeometry, /* preferred_geometry */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateChildrenInfo, /* update_children_info */
XfeInheritLayoutWidget, /* layout_widget */
XfeInheritAcceptStaticChild, /* accept_static_child */
@ -205,6 +205,7 @@ _XFE_WIDGET_CLASS_RECORD(textcaption,TextCaption) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
XfeInheritDrawComponents, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -164,6 +164,7 @@ static int ScreenGetSpaceAbove (Widget);
/*----------------------------------------------------------------------*/
static void TextFocusCB (Widget,XtPointer,XtPointer);
static void TextLosingFocusCB (Widget,XtPointer,XtPointer);
static void TextActivateCB (Widget,XtPointer,XtPointer);
/*----------------------------------------------------------------------*/
/* */
@ -202,6 +203,13 @@ static void ComboBoxRegisterRepTypes (void);
static void InvokeSetTextProc (Widget,char *);
static char * InvokeGetTextFunc (Widget);
/*----------------------------------------------------------------------*/
/* */
/* Text functions */
/* */
/*----------------------------------------------------------------------*/
static void InvokeTextActivateCallback (Widget);
#if 0
/*
* External definitions of syn_resources for our list widget.
@ -226,6 +234,17 @@ extern void _DtComboBoxGetListVisibleItemCount SYN_RESOURCE_AA;
/*----------------------------------------------------------------------*/
static XtResource resources[] =
{
/* Callback resources */
{
XmNtextActivateCallback,
XmCCallback,
XmRCallback,
sizeof(XtCallbackList),
XtOffsetOf(XfeComboBoxRec , xfe_combo_box . text_activate_callback),
XmRImmediate,
(XtPointer) NULL,
},
/* XmTextField manipulation resources */
{
XmNgetTextFunc,
@ -630,7 +649,7 @@ _XFE_WIDGET_CLASS_RECORD(combobox,ComboBox) =
{
XfeInheritBitGravity, /* bit_gravity */
PreferredGeometry, /* preferred_geometry */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateChildrenInfo, /* update_children_info */
XfeInheritLayoutWidget, /* layout_widget */
AcceptStaticChild, /* accept_static_child */
@ -643,6 +662,7 @@ _XFE_WIDGET_CLASS_RECORD(combobox,ComboBox) =
NULL, /* draw_background */
DrawShadow, /* draw_shadow */
DrawComponents, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},
@ -1190,11 +1210,14 @@ TitleTextCreate(Widget w)
XmNbackgroundPixmap, _XfeBackgroundPixmap(w),
XmNhighlightThickness, 0,
XmNshadowThickness, 0,
/* XmNtraversalOn, False, */
/* XmNhighlightThickness, 0, */
NULL);
XtAddCallback(text,XmNfocusCallback,TextFocusCB,w);
XtAddCallback(text,XmNlosingFocusCallback,TextLosingFocusCB,w);
XtAddCallback(text,XmNactivateCallback,TextActivateCB,w);
return text;
}
@ -1479,6 +1502,33 @@ TextLosingFocusCB(Widget text,XtPointer client_data,XtPointer call_data)
DrawHighlight(w,NULL,NULL,&_XfemBoundary(w));
}
/*----------------------------------------------------------------------*/
static void
TextActivateCB(Widget text,XtPointer client_data,XtPointer call_data)
{
Widget w = (Widget) client_data;
XfeComboBoxPart * cp = _XfeComboBoxPart(w);
InvokeTextActivateCallback(w);
/* printf("TextActivateCB(%s)\n",XtName(w)); */
}
/*----------------------------------------------------------------------*/
static void
InvokeTextActivateCallback(Widget w)
{
XfeComboBoxPart * cp = _XfeComboBoxPart(w);
if (cp->text_activate_callback != NULL)
{
XmAnyCallbackStruct cbs;
cbs.reason = XmCR_COMBO_BOX_TEXT_ACTIVATE;
cbs.event = NULL;
XtCallCallbackList(w,cp->text_activate_callback,(XtPointer) &cbs);
}
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
@ -1598,7 +1648,7 @@ InvokeSetTextProc(Widget text_field,char * text)
}
/*----------------------------------------------------------------------*/
static char *
InvokeGetTextProc(Widget text_field)
InvokeGetTextFunc(Widget text_field)
{
Widget w = _XfeParent(text_field);
XfeComboBoxPart * cp = _XfeComboBoxPart(w);
@ -1703,7 +1753,6 @@ XfeComboBoxSetText(Widget w,char * text)
}
/*----------------------------------------------------------------------*/
/* extern */ void
XfeComboBoxAddItem(Widget w,XmString item,int position)
{
@ -1760,3 +1809,26 @@ XfeComboBoxAddItemUnique(Widget w,XmString item,int position)
assert( XfeIsComboBox(w) );
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
/* XfeComboBox - XmCOMBO_BOX_EDITABLE methods */
/* */
/*----------------------------------------------------------------------*/
/* extern */ String
XfeComboBoxGetTextString(Widget w)
{
XfeComboBoxPart * cp = _XfeComboBoxPart(w);
assert( XfeIsComboBox(w) );
assert( cp->combo_box_type == XmCOMBO_BOX_EDITABLE );
if (cp->combo_box_type != XmCOMBO_BOX_EDITABLE)
{
return NULL;
}
return InvokeGetTextFunc(cp->title);
}
/*----------------------------------------------------------------------*/

Просмотреть файл

@ -36,6 +36,8 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
/* XfeComboBox resource names */
/* */
/*----------------------------------------------------------------------*/
#define XmNtextActivateCallback "textActivateCallback"
#define XmNarrow "arrow"
#define XmNgetTextFunc "getTextFunc"
#define XmNlistFontList "listFontList"
@ -84,6 +86,20 @@ enum
};
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
/* Callback Reasons */
/* */
/*----------------------------------------------------------------------*/
enum
{
XmCR_COMBO_BOX_TEXT_ACTIVATE = XmCR_XFE_LAST_REASON + 199, /* Text activate */
XmCR_COMBO_BOX_TEXT_COMPLETE, /* Text complete */
XmCR_COMBO_BOX_TEXT_SELECT /* Text select */
};
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
/* XfeComboBoxSetTextProc */
@ -150,6 +166,15 @@ XfeComboBoxAddItemUnique (Widget w,
int position);
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */
/* XfeComboBox - XmCOMBO_BOX_EDITABLE methods */
/* */
/*----------------------------------------------------------------------*/
extern String
XfeComboBoxGetTextString (Widget w);
/*----------------------------------------------------------------------*/
XFE_END_CPLUSPLUS_PROTECTION
#endif /* end ComboBox.h */

Просмотреть файл

@ -80,6 +80,9 @@ externalref XfeComboBoxClassRec xfeComboBoxClassRec;
/*----------------------------------------------------------------------*/
typedef struct _XfeComboBoxPart
{
/* Callback Resources */
XtCallbackList text_activate_callback; /* Text activate cb */
/* XmTextField manipulation resources */
XfeComboBoxSetTextProc set_text_proc; /* Set text proc */
XfeComboBoxGetTextFunc get_text_func; /* Get text func */

Просмотреть файл

@ -519,7 +519,7 @@ _XFE_WIDGET_CLASS_RECORD(fancybox,FancyBox) =
{
XfeInheritBitGravity, /* bit_gravity */
PreferredGeometry, /* preferred_geometry */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateBoundary, /* update_boundary */
XfeInheritUpdateChildrenInfo, /* update_children_info */
XfeInheritLayoutWidget, /* layout_widget */
AcceptStaticChild, /* accept_static_child */
@ -532,6 +532,7 @@ _XFE_WIDGET_CLASS_RECORD(fancybox,FancyBox) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
XfeInheritDrawComponents, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -366,6 +366,7 @@ _XFE_WIDGET_CLASS_RECORD(chrome,Chrome) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -359,6 +359,7 @@ _XFE_WIDGET_CLASS_RECORD(dashboard,DashBoard) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -92,7 +92,6 @@ static Boolean ConstraintSetValues (Widget,Widget,Widget,ArgList,Cardinal *);
/* */
/*----------------------------------------------------------------------*/
static void PreferredGeometry (Widget,Dimension *,Dimension *);
static void DrawComponents (Widget,XEvent *,Region,XRectangle *);
/*----------------------------------------------------------------------*/
/* */
@ -110,7 +109,6 @@ static void GetChildDimensions (Widget,Dimension *,Dimension *);
/* XfeToolBar class methods */
/* */
/*----------------------------------------------------------------------*/
static void DrawAccentBorder (Widget,XEvent *,Region,XRectangle *);
static void LayoutIndicator (Widget);
/*----------------------------------------------------------------------*/
@ -276,15 +274,6 @@ static XtResource resources[] =
XmRImmediate,
(XtPointer) False
},
{
XmNaccentBorderThickness,
XmCAccentBorderThickness,
XmRHorizontalDimension,
sizeof(Dimension),
XtOffsetOf(XfeToolBarRec , xfe_tool_bar . accent_border_thickness),
XmRImmediate,
(XtPointer) 0
},
/* Radio resources */
{
@ -452,22 +441,6 @@ static XtResource resources[] =
#endif
};
/*----------------------------------------------------------------------*/
/* */
/* XfeToolBar Synthetic Resources */
/* */
/*----------------------------------------------------------------------*/
static XmSyntheticResource syn_resources[] =
{
{
XmNaccentBorderThickness,
sizeof(Dimension),
XtOffsetOf(XfeToolBarRec , xfe_tool_bar . accent_border_thickness),
_XmFromHorizontalPixels,
_XmToHorizontalPixels
},
};
/*----------------------------------------------------------------------*/
/* */
/* XfeToolBar constraint resources */
@ -578,13 +551,13 @@ _XFE_WIDGET_CLASS_RECORD(toolbar,ToolBar) =
/* XmManager Part */
{
XtInheritTranslations, /* tm_table */
(XmSyntheticResource *)syn_resources, /* syn resources */
XtNumber(syn_resources), /* num syn_resources */
NULL, /* syn_cont_resources */
0, /* num_syn_cont_resource*/
XmInheritParentProcess, /* parent_process */
NULL, /* extension */
XtInheritTranslations, /* tm_table */
NULL, /* syn resources */
0, /* num syn_resources */
NULL, /* syn_cont_resources */
0, /* num_syn_cont_resource */
XmInheritParentProcess, /* parent_process */
NULL, /* extension */
},
/* XfeManager Part */
@ -603,7 +576,8 @@ _XFE_WIDGET_CLASS_RECORD(toolbar,ToolBar) =
NULL, /* layout_components */
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
DrawComponents, /* draw_components */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},
@ -640,7 +614,6 @@ _XFE_WIDGET_CLASS_RECORD(toolbar,ToolBar) =
/* XfeToolBar Part */
{
DrawAccentBorder, /* draw_accent_border */
LayoutIndicator, /* layout_indicator */
NULL, /* extension */
},
@ -715,9 +688,6 @@ ClassPartInit(WidgetClass wc)
XfeToolBarWidgetClass sc = (XfeToolBarWidgetClass) wc->core_class.superclass;
/* Resolve inheritance of all XfeToolBar class methods */
_XfeResolve(cc,sc,xfe_tool_bar_class,draw_accent_border,
XfeInheritDrawAccentBorder);
_XfeResolve(cc,sc,xfe_tool_bar_class,layout_indicator,
XfeInheritLayoutIndicator);
}
@ -811,12 +781,6 @@ SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs)
_XfemConfigFlags(nw) |= XfeConfigLED;
}
/* accent_border_thickness */
if (np->accent_border_thickness != op->accent_border_thickness)
{
_XfemConfigFlags(nw) |= XfeConfigGLED;
}
/* raised */
if (np->raised != op->raised)
{
@ -1218,12 +1182,6 @@ DeleteDynamicChild(Widget child)
}
/*----------------------------------------------------------------------*/
static void
DrawComponents(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
{
_XfeToolBarDrawAccentBorder(w,event,region,clip_rect);
}
/*----------------------------------------------------------------------*/
static void
PreferredGeometry(Widget w,Dimension * width,Dimension * height)
{
#ifdef DEBUG_ramiro
@ -1313,7 +1271,7 @@ GetChildDimensions(Widget child,Dimension * width_out,Dimension * height_out)
/* The button's height */
height =
force_dimension ?
(_XfemBoundaryHeight(w) - 2 * tp->accent_border_thickness) :
(_XfemBoundaryHeight(w) - 2 * 0) :
_XfeHeight(child);
}
else if (IsSeparatorChild(child))
@ -1335,7 +1293,7 @@ GetChildDimensions(Widget child,Dimension * width_out,Dimension * height_out)
/* The button's width */
width =
force_dimension ?
(_XfemBoundaryWidth(w) - 2 * tp->accent_border_thickness) :
(_XfemBoundaryWidth(w) - 2 * 0) :
_XfeWidth(child);
/* The button's height */
@ -1382,59 +1340,6 @@ GetChildDimensions(Widget child,Dimension * width_out,Dimension * height_out)
/* */
/*----------------------------------------------------------------------*/
static void
DrawAccentBorder(Widget w,XEvent *event,Region region,XRectangle * clip_rect)
{
XfeToolBarPart * tp = _XfeToolBarPart(w);
/* Make sure there is a highlight to draw */
if (!tp->accent_border_thickness || !tp->raised)
{
return;
}
/* The shadow thickness can be used to tweak the raised effect */
switch(tp->accent_border_thickness)
{
case 2:
case 4:
XfeDrawRectangle(XtDisplay(w),
_XfeWindow(w),
_XfemHighlightGC(w),
0,
0,
_XfeWidth(w),
_XfeHeight(w),
tp->accent_border_thickness / 2);
_XmDrawShadows(XtDisplay(w),
_XfeWindow(w),
_XfemTopShadowGC(w),
_XfemBottomShadowGC(w),
tp->accent_border_thickness / 2,
tp->accent_border_thickness / 2,
_XfeWidth(w) - 2 * (tp->accent_border_thickness / 2),
_XfeHeight(w) - 2 * (tp->accent_border_thickness / 2),
tp->accent_border_thickness / 2,
XmSHADOW_OUT);
break;
default:
XfeDrawRectangle(XtDisplay(w),
_XfeWindow(w),
_XfemHighlightGC(w),
0,
0,
_XfeWidth(w),
_XfeHeight(w),
tp->accent_border_thickness);
break;
}
}
/*----------------------------------------------------------------------*/
static void
LayoutIndicator(Widget w)
{
XfeToolBarPart * tp = _XfeToolBarPart(w);
@ -1721,11 +1626,11 @@ LayoutHorizontal(Widget w,
width =
_XfemOffsetLeft(w) + _XfemOffsetRight(w) +
2 * tp->accent_border_thickness;
2 * 0;
height =
_XfemOffsetTop(w) + _XfemOffsetBottom(w) +
2 * tp->accent_border_thickness;
2 * 0;
/* Initialize the number of rows */
tp->num_rows = 1;
@ -1737,15 +1642,15 @@ LayoutHorizontal(Widget w,
Position min_x =
_XfemOffsetLeft(w) +
tp->accent_border_thickness;
0;
Position max_x =
_XfeWidth(w) -
_XfemOffsetRight(w) -
tp->accent_border_thickness;
0;
Position x = min_x;
Position y = _XfemOffsetTop(w) + tp->accent_border_thickness;
Position y = _XfemOffsetTop(w) + 0;
/* Traverse the dynamic children */
for (node = XfeLinkedHead(_XfemDynamicChildren(w));
@ -1808,17 +1713,17 @@ LayoutVertical(Widget w,
width =
_XfemOffsetLeft(w) + _XfemOffsetRight(w) +
2 * tp->accent_border_thickness;
2 * 0;
height =
_XfemOffsetTop(w) + _XfemOffsetBottom(w) +
2 * tp->accent_border_thickness;
2 * 0;
if (_XfemNumDynamicChildren(w) > 0)
{
XfeLinkNode node;
Position x = _XfemOffsetLeft(w) + tp->accent_border_thickness;
Position y = _XfemOffsetTop(w) + tp->accent_border_thickness;
Position x = _XfemOffsetLeft(w) + 0;
Position y = _XfemOffsetTop(w) + 0;
/* Traverse the dynamic children */
for (node = XfeLinkedHead(_XfemDynamicChildren(w));
@ -2360,20 +2265,6 @@ _XfeToolBarLayoutIndicator(Widget w)
}
}
/*----------------------------------------------------------------------*/
/* extern */ void
_XfeToolBarDrawAccentBorder(Widget w,
XEvent * event,
Region region,
XRectangle * clip_rect)
{
XfeToolBarWidgetClass tc = (XfeToolBarWidgetClass) XtClass(w);
if (tc->xfe_tool_bar_class.draw_accent_border)
{
(*tc->xfe_tool_bar_class.draw_accent_border)(w,event,region,clip_rect);
}
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
/* */

Просмотреть файл

@ -113,8 +113,6 @@ enum
};
/*----------------------------------------------------------------------*/
#define XmCR_XFE_LAST_REASON 1
/*----------------------------------------------------------------------*/
/* */
/* Callback Reasons */

Просмотреть файл

@ -29,7 +29,6 @@
#include <Xfe/ToolBar.h>
#include <Xfe/OrientedP.h>
#include <Xfe/ButtonP.h>
XFE_BEGIN_CPLUSPLUS_PROTECTION
@ -47,7 +46,6 @@ XFE_BEGIN_CPLUSPLUS_PROTECTION
/*----------------------------------------------------------------------*/
typedef struct
{
XfeExposeProc draw_accent_border; /* draw_accent_border */
XtWidgetProc layout_indicator; /* layout_indicator */
XtPointer extension; /* Extension */
} XfeToolBarClassPart;
@ -92,7 +90,6 @@ typedef struct _XfeToolBarPart
int separator_thickness; /* Separator thickness */
/* Raised resources */
Dimension accent_border_thickness;/* Accent border thickness*/
Boolean raised; /* Raised ? */
/* Radio resources */
@ -187,12 +184,6 @@ typedef struct _XfeToolBarConstraintRec
/* */
/*----------------------------------------------------------------------*/
extern void
_XfeToolBarDrawAccentBorder (Widget w,
XEvent * event,
Region region,
XRectangle * clip_rect);
/*----------------------------------------------------------------------*/
extern void
_XfeToolBarLayoutIndicator (Widget w);
/*----------------------------------------------------------------------*/

Просмотреть файл

@ -653,6 +653,7 @@ _XFE_WIDGET_CLASS_RECORD(toolbox,ToolBox) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -198,6 +198,7 @@ _XFE_WIDGET_CLASS_RECORD(toolitem,ToolItem) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
NULL, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -321,6 +321,7 @@ _XFE_WIDGET_CLASS_RECORD(toolscroll,ToolScroll) =
NULL, /* draw_background */
XfeInheritDrawShadow, /* draw_shadow */
DrawComponents, /* draw_components */
XfeInheritDrawAccentBorder, /* draw_accent_border */
NULL, /* extension */
},

Просмотреть файл

@ -5380,7 +5380,6 @@ from the network, or save to a file and then play from the file?
*toolBoxItem*XfeToolBar.marginBottom: 0
*toolBoxItem*XfeToolBar.spacing: 1
*toolBoxItem*XfeToolBar.accentBorderThickness: 2
*toolBoxItem*XfeToolBar.indicatorThreshold: 10
*toolBoxItem*XfeToolBar*XfeButton.marginBottom: 1