Update for indicator support. Dont hardcode button layout.

This commit is contained in:
ramiro 1998-04-21 12:41:46 +00:00
Родитель e8e4c884ed
Коммит c4527bff27
3 изменённых файлов: 78 добавлений и 14 удалений

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

@ -90,6 +90,7 @@ ChromeTest*ToolBox.shadowThickness: 1
ChromeTest*ToolBox*buttonType: button_push
ChromeTest*ToolBox*XfeToolBar*shadowThickness: 1
ChromeTest*ToolBox*XfeToolBar.buttonLayout: button_label_on_bottom
ChromeTest*ToolBox*XmForm*shadowThickness: 0
ChromeTest*ToolBox*XmFrame*shadowThickness: 1
ChromeTest*ToolBox*XmFrame*shadowType: shadow_out

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

@ -42,6 +42,8 @@ ToolBarTest*ToolBar.shadowType: shadow_out
ToolBarTest*ToolBar.background: Gray70
ToolBarTest*ToolBar.highlightThickness: 1
ToolBarTest*ToolBar.highlighted: True
ToolBarTest*ToolBar.buttonLayout: button_label_on_bottom
!ToolBarTest*ToolBar.borderWidth: 1
!ToolBarTest*ToolBar.borderColor: Red
@ -125,5 +127,25 @@ ToolBarTest*Hide.labelString: Hide Indicator
ToolBarTest*ToolBar*Indicator.background: Red
ToolBarTest*LocationToolBar.leftAttachment: attach_widget
ToolBarTest*LocationToolBar.topAttachment: attach_widget
ToolBarTest*LocationToolBar.bottomAttachment: attach_none
ToolBarTest*LocationToolBar.rightAttachment: attach_none
ToolBarTest*LocationToolBar.leftOffset: 5
ToolBarTest*LocationToolBar.topOffset: 50
ToolBarTest*LocationToolBar.topWidget: ToolBar
ToolBarTest*LocationToolBar.leftWidget: Hide
ToolBarTest*LocationToolBar.leftOffset: 50
ToolBarTest*LocationToolBar.labelString: Hide Indicator
ToolBarTest*LocationToolBar.buttonLayout: button_label_only
ToolBarTest*LocationToolBar.childForceWidth: False
ToolBarTest*LocationToolBar.childForceHeight: True
ToolBarTest*LocationToolBar.childUsePreferredWidth: True
ToolBarTest*LocationToolBar.childUsePreferredHeight: False
ToolBarTest*LocationToolBar*Item1.labelString: None
ToolBarTest*LocationToolBar*Item2.labelString: Beginning
ToolBarTest*LocationToolBar*Item3.labelString: End
ToolBarTest*LocationToolBar*Item4.labelString: Middle

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

@ -27,6 +27,9 @@
static void scale_cb (Widget,XtPointer,XtPointer);
static void hide_cb (Widget,XtPointer,XtPointer);
static void location_cb (Widget,XtPointer,XtPointer);
static Widget _tool_bar = NULL;
/*----------------------------------------------------------------------*/
int
@ -34,13 +37,13 @@ main(int argc,char *argv[])
{
Widget form;
Widget frame;
Widget tool_bar;
Widget scale;
Widget hide;
Widget location_tool_bar;
XfeAppCreateSimple("ToolBarTest",&argc,argv,"MainFrame",&frame,&form);
tool_bar = XfeCreateLoadedToolBar(form,
_tool_bar = XfeCreateLoadedToolBar(form,
"ToolBar",
"Tool",
50,
@ -56,15 +59,25 @@ main(int argc,char *argv[])
form,
NULL);
XtAddCallback(scale,XmNvalueChangedCallback,scale_cb,tool_bar);
XtAddCallback(scale,XmNdragCallback,scale_cb,tool_bar);
XtAddCallback(scale,XmNvalueChangedCallback,scale_cb,NULL);
XtAddCallback(scale,XmNdragCallback,scale_cb,NULL);
hide = XtVaCreateManagedWidget("Hide",
xmPushButtonWidgetClass,
form,
NULL);
XtAddCallback(hide,XmNactivateCallback,hide_cb,tool_bar);
XtAddCallback(hide,XmNactivateCallback,hide_cb,NULL);
location_tool_bar = XfeCreateLoadedToolBar(form,
"LocationToolBar",
"Item",
4,
0,
NULL,
NULL,
location_cb,
NULL);
XtPopup(frame,XtGrabNone);
@ -76,30 +89,58 @@ main(int argc,char *argv[])
static void
scale_cb(Widget w,XtPointer client_data,XtPointer call_data)
{
Widget tool_bar = (Widget) client_data;
int value;
assert( XfeIsAlive(tool_bar) );
assert( XfeIsAlive(_tool_bar) );
XmScaleGetValue(w,&value);
value = value % 10;
value = value / 10;
printf("%s(%s,%d)\n",__FUNCTION__,XtName(w),value);
XtVaSetValues(tool_bar,XmNindicatorPosition,value,NULL);
XtVaSetValues(_tool_bar,XmNindicatorPosition,value,NULL);
}
/*----------------------------------------------------------------------*/
static void
hide_cb(Widget w,XtPointer client_data,XtPointer call_data)
{
Widget tool_bar = (Widget) client_data;
assert( XfeIsAlive(tool_bar) );
assert( XfeIsAlive(_tool_bar) );
printf("%s(%s)\n",__FUNCTION__,XtName(w));
XtVaSetValues(tool_bar,XmNindicatorPosition,XmINDICATOR_DONT_SHOW,NULL);
XtVaSetValues(_tool_bar,XmNindicatorPosition,XmINDICATOR_DONT_SHOW,NULL);
}
/*----------------------------------------------------------------------*/
static void
location_cb(Widget w,XtPointer client_data,XtPointer call_data)
{
unsigned char location = XmINDICATOR_LOCATION_NONE;
assert( XfeIsAlive(_tool_bar) );
if (strcmp(XtName(w),"Item1") == 0)
{
location = XmINDICATOR_LOCATION_NONE;
}
else if (strcmp(XtName(w),"Item2") == 0)
{
location = XmINDICATOR_LOCATION_BEGINNING;
}
else if (strcmp(XtName(w),"Item3") == 0)
{
location = XmINDICATOR_LOCATION_END;
}
else if (strcmp(XtName(w),"Item4") == 0)
{
location = XmINDICATOR_LOCATION_MIDDLE;
}
printf("%s(%s) location = %s\n",
__FUNCTION__,
XtName(w),
XfeDebugRepTypeValueToName(XmRToolBarIndicatorLocation,location));
XtVaSetValues(_tool_bar,XmNindicatorLocation,location,NULL);
}
/*----------------------------------------------------------------------*/