home *** CD-ROM | disk | FTP | other *** search
-
- /* ReqTools2.c - The GUI of the 'ReqTools' preferences utility
- *
- * This is a GUIFront example GUI. To build an example, compile and link this
- * file with Generic.o (also supplied).
- * Everything prefixed with DEMO_ is exported to Generic.o.
- */
-
- #include <libraries/guifront.h>
-
- /* This GUI is the same as 'ReqTools.c', only we've added some frames to
- * make it look better
- */
-
- /* First, some Gadget ID's */
-
- enum
- {
- GID_SCREENTOFRONT,
- GID_USEDEFAULT,
- GID_IMMEDIATESORT,
- GID_DRAWERSFIRST,
- GID_MIX,
- GID_DISKLED,
- GID_DEFAULTSFOR,
- GID_SIZE,
- GID_ENTRIESMIN,
- GID_ENTRIESMAX,
- GID_POSITION,
- GID_OFFSETX,
- GID_OFFSETY,
- GID_SAVE,
- GID_USE,
- GID_CANCEL,
- GID_SIZETXT,
- GID_NUMBERTXT,
- };
-
- /* Some data and tag items we'll be needing later */
-
- static const STRPTR defaultslabels[] =
- {
- "File Requester",
- "Font Requester",
- "Palette Requester",
- "Screen Mode Requester",
- "Volume Requester",
- "Other Requesters",
- NULL,
- };
-
- static const struct TagItem defaultstags[] =
- {
- {GTCY_Labels, defaultslabels},
- {TAG_DONE},
- };
-
- static const STRPTR positionlabels[] =
- {
- "Mouse Pointer",
- "Center in Window",
- "Center on Screen",
- "Top left of Window",
- "Top left of Screen",
- NULL,
- };
-
- static const struct TagItem positiontags[] =
- {
- {GTCY_Labels, positionlabels},
- {TAG_DONE},
- };
-
- static const struct TagItem sizetags[] =
- {
- {GTSL_Min, 25},
- {GTSL_Max, 100},
- {TAG_DONE},
- };
-
- /* Now, the GadgetSpec's we'll be needing for this GUI */
-
- static GadgetSpec gadgetspecs[] =
- {
- {CHECKBOX_KIND, 0,0, {0,0,0,0,"_Pop screen to front",NULL,GID_SCREENTOFRONT, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
- {CHECKBOX_KIND, 0,0, {0,0,0,0,"Us_e system default font",NULL,GID_USEDEFAULT, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
- {CHECKBOX_KIND, 0,0, {0,0,0,0,"_Immediate sort",NULL,GID_IMMEDIATESORT, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
- {CHECKBOX_KIND, 0,0, {0,0,0,0,"_Display drawers first",NULL,GID_DRAWERSFIRST, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
- {CHECKBOX_KIND, 0,0, {0,0,0,0,"Mi_x files and drawers",NULL,GID_MIX, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
- {CHECKBOX_KIND, 0,0, {0,0,0,0,"Dis_k activity LED",NULL,GID_DISKLED, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
- {CYCLE_KIND, 0,0, {0,0,0,0,"De_faults for",NULL,GID_DEFAULTSFOR,PLACETEXT_LEFT | NG_HIGHLABEL},defaultstags,GS_DefaultTags},
- {SLIDER_KIND, 0,0, {0,0,0,0,"70%",NULL,GID_SIZE,PLACETEXT_LEFT},sizetags,GS_DefaultTags},
- {INTEGER_KIND, 4,0, {0,0,0,0,"_Minimum",NULL,GID_ENTRIESMIN,PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
- {INTEGER_KIND, 4,0, {0,0,0,0,"M_aximum",NULL,GID_ENTRIESMAX,PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
- {CYCLE_KIND, 0,0, {0,0,0,0,"P_osition:",NULL,GID_POSITION,PLACETEXT_LEFT},positiontags,GS_DefaultTags},
- {INTEGER_KIND, 4,0, {0,0,0,0,"Offse_t:",NULL,GID_OFFSETX, PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
- {INTEGER_KIND, 4,0, {0,0,0,0,NULL,NULL,GID_OFFSETY, PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
- {BUTTON_KIND, 0,0, {0,0,0,0,"_Save", NULL, GID_SAVE, PLACETEXT_IN}, NULL, GS_DefaultTags},
- {BUTTON_KIND, 0,0, {0,0,0,0,"_Use", NULL, GID_USE, PLACETEXT_IN}, NULL, GS_DefaultTags | GS_BoldLabel},
- {BUTTON_KIND, 0,0, {0,0,0,0,"_Cancel", NULL, GID_CANCEL, PLACETEXT_IN}, NULL, GS_DefaultTags},
- {TEXT_KIND, 0,0, {0,0,0,0,"Size (% of visible height):",NULL,GID_SIZETXT,PLACETEXT_IN | NG_HIGHLABEL},NULL,GS_DefaultTags},
- {TEXT_KIND, 0,0, {0,0,0,0,"Number of visible entries:",NULL,GID_NUMBERTXT,PLACETEXT_IN | NG_HIGHLABEL},NULL,GS_DefaultTags},
- };
-
- /* Now, we group all of these GadgetSpecs into an array of pointers, so the
- * layout engine can locate gadgets merely by their Gadget IDs.
- */
-
- GadgetSpec *DEMO_GadgetSpecList[] =
- {
- &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
- &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
- &gadgetspecs[7], &gadgetspecs[8], &gadgetspecs[9], &gadgetspecs[10],
- &gadgetspecs[11], &gadgetspecs[12], &gadgetspecs[13], &gadgetspecs[14],
- &gadgetspecs[15], &gadgetspecs[16], &gadgetspecs[17],
- NULL,
- };
-
- /* Finally, the layout tag list itself. This is where most of the work is
- * done. This list completely describes how the above gadgets are arranged
- * in groups in the GUI.
- */
-
- ULONG DEMO_LayoutList[] =
- {
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
-
- GUIL_HorizGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
-
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
- GUIL_FrameType, GUILFT_Ridge,
- GUIL_FrameHeadline, "General",
- GUIL_GadgetSpecID, GID_SCREENTOFRONT,
- GUIL_GadgetSpecID, GID_USEDEFAULT,
- TAG_DONE,
-
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
- GUIL_FrameType, GUILFT_Ridge,
- GUIL_FrameHeadline, "File Requester",
-
- GUIL_GadgetSpecID, GID_IMMEDIATESORT,
- GUIL_GadgetSpecID, GID_DRAWERSFIRST,
- GUIL_GadgetSpecID, GID_MIX,
- GUIL_GadgetSpecID, GID_DISKLED,
- TAG_DONE,
- TAG_DONE,
-
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
- GUIL_GadgetSpecID, GID_DEFAULTSFOR,
-
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
- GUIL_FrameType, GUILFT_Recess,
- GUIL_GadgetSpecID, GID_SIZETXT,
- GUIL_GadgetSpecID, GID_SIZE,
- GUIL_GadgetSpecID, GID_NUMBERTXT,
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
- GUIL_HorizGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
- GUIL_GadgetSpecID, GID_ENTRIESMIN,
- GUIL_GadgetSpecID, GID_ENTRIESMAX,
- TAG_DONE,
- GUIL_GadgetSpecID, GID_POSITION,
- GUIL_HorizGroup, 0,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
- GUIL_GadgetSpecID, GID_OFFSETX,
- GUIL_GadgetSpecID, GID_OFFSETY,
- TAG_DONE,
- TAG_DONE,
- TAG_DONE,
- TAG_DONE,
- TAG_DONE,
-
- GUIL_HorizGroup, 1,
- GUIL_Flags, GUILF_EqualSize | GUILF_EqualHeight,
- GUIL_GadgetSpecID, GID_SAVE,
- GUIL_GadgetSpecID, GID_USE,
- GUIL_GadgetSpecID, GID_CANCEL,
- TAG_DONE,
-
- TAG_DONE,
- };
-
- /* Obligatory version tag */
-
- static const char ver[] = "$VER: ReqTools2 1.0 " __AMIGADATE__;
-
- /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
-
- int DEMO_InitialOrientation = GUIL_VertGroup;
-
- STRPTR DEMO_WindowTitle = "ReqTools Preferences' GUI (2)";
- STRPTR DEMO_AppID = "ReqTools2";
-
- STRPTR DEMO_Version = "1.0",
- DEMO_LongDesc = "Demo program - ReqTools prefs editor (2)",
- DEMO_Author = "Michael Berg",
- DEMO_Date = __AMIGADATE__;
-
- BOOL DEMO_Backfill = FALSE;
-