/*******************************************************************/ /* This is Enlightenment's definition macro file */ /* This file determines keyword values and conveience macros for E */ /* This file is sourced for every file E has to parse */ /*******************************************************************/ #ifndef __E16_DEFINITIONS__ #define __E16_DEFINITIONS__ /* section begin/end stuff */ #define __BGN 999 #define __END 1000 #define __E_CFG_VERSION 1001 /* booleans */ #define __OFF 0 #define __ON 1 #define __NO 0 #define __YES 1 /* focus mode options */ #define __POINTER 0 #define __SLOPPY 1 #define __CLICK_TO_FOCUS 2 /* move and resize mode */ #define __OPAQUE 0 #define __LINES 1 #define __BOX 2 #define __SHADE 3 #define __BOXSHADE 4 /* for move mode only */ #define __TRANSLUCENT 5 /* move and resize geometry display modes */ #define __NO_GEOMINFO 0 #define __CENTER_GEOMINFO 1 #define __CORNER_GEOMINFO 2 /* positioning and direction */ #define __LEFT 0 #define __RIGHT 1 #define __TOP 2 #define __BOTTOM 3 #define __UP 2 #define __DOWN 3 /* attributes */ #define __FLAG_TITLE 1 #define __FLAG_MINI_ICON 2 #define __FLAG_TITLE_AND_ICON 3 /* fill rules for imageclasses */ #define __SCALE 0 #define __STRETCH 0 #define __TILE_H 1 #define __TILE_V 2 #define __TILE 3 #define __INTEGER_TILE_H 4 #define __INTEGER_TILE_V 8 #define __INTEGER_TILE 12 /* major sections in the config */ #define __CONTROL 0 #define __TCLASS 1 #define __MENU 2 #define __BORDER 3 #define __BUTTON 4 #define __DESKTOP 5 #define __SOUND 9 #define __ACLASS 11 #define __ICLASS 12 #define __MATCH_WINDOW 14 #define __COLOR_MODIFIER 15 #define __SLIDEOUT 16 #define __ICONBOX 19 #define __FONTS 21 #define __MENU_STYLE 699 #define __BORDER_PART 505 #define __TOOLTIP_TEXT 17 #define __TOOLTIP 17 #define __NAME 100 #define __ORIENTATION 200 #define __JUSTIFICATION 201 #define __DRAWING_EFFECT 204 #define __FORGROUND_COLOR 205 #define __BACKGROUND_COLOR 206 #define __FONT_TO_RIGHT 0 #define __FONT_TO_DOWN 1 #define __FONT_TO_UP 2 #define __FONT_TO_LEFT 3 #define __EFFECT_NONE 0 #define __EFFECT_NORMAL 0 #define __EFFECT_SHADOW 1 #define __EFFECT_OUTLINE 2 #define __NORMAL 5 #define __CLICKED 352 #define __HILITED 353 #define __NORMAL_ACTIVE 354 #define __CLICKED_ACTIVE 355 #define __HILITED_ACTIVE 356 #define __EDGE_SCALING 357 #define __PADDING 358 #define __NORMAL_STICKY 359 #define __CLICKED_STICKY 360 #define __HILITED_STICKY 361 #define __NORMAL_ACTIVE_STICKY 362 #define __NORMAL_ACTIVE_CLICKED 363 #define __NORMAL_ACTIVE_HILITED 364 #define __CLICKED_ACTIVE_STICKY 363 #define __HILITED_ACTIVE_STICKY 364 #define __MODIFIER 370 #define __FILLRULE 371 #define __TRANSPARENT 372 #define __ROTATE 373 #define __ROTATE_90 1 #define __ROTATE_180 2 #define __ROTATE_270 3 #define __FLIP 373 #define __FLIP_HORIZONTAL 4 #define __FLIP_90 5 #define __FLIP_VERTICAL 6 #define __FLIP_270 7 #define __BEVEL 374 #define __BEVEL_AMIGA 1 #define __BEVEL_MOTIF 2 #define __BEVEL_NEXT 3 #define __BEVEL_DOUBLE 4 #define __BEVEL_WIDEDOUBLE 5 #define __BEVEL_THINPOINT 6 #define __BEVEL_THICKPOINT 7 #define __KEEP_ON_TOP 453 #define __FLAGS 454 #define __IS_A_REGION 455 #define __MIN_WIDTH 456 #define __MAX_WIDTH 457 #define __TOPLEFT_ORIGIN 467 #define __TOPLEFT_X_PERCENTAGE 458 #define __TOPLEFT_X_ABSOLUTE 459 #define __TOPLEFT_Y_PERCENTAGE 460 #define __TOPLEFT_Y_ABSOLUTE 461 #define __BOTTOMRIGHT_ORIGIN 462 #define __BOTTOMRIGHT_X_PERCENTAGE 463 #define __BOTTOMRIGHT_X_ABSOLUTE 464 #define __BOTTOMRIGHT_Y_PERCENTAGE 465 #define __BOTTOMRIGHT_Y_ABSOLUTE 466 #define __MIN_HEIGHT 468 #define __MAX_HEIGHT 469 #define __KEEP_WHEN_SHADED 470 #define __BORDER_SIZE_LEFT 501 #define __BORDER_SIZE_RIGHT 502 #define __BORDER_SIZE_TOP 503 #define __BORDER_SIZE_BOTTOM 504 #define __SHADE_DIRECTION 506 #define __CHANGES_SHAPE 507 #define __BORDER_GROUP_NAME 508 #define __X_ORIGIN 528 #define __Y_ORIGIN 529 #define __X_ABSOLUTE 530 #define __X_PERCENTAGE 531 #define __Y_ABSOLUTE 532 #define __Y_PERCENTAGE 533 #define __X_SIZE_PERCENTAGE 534 #define __Y_SIZE_PERCENTAGE 535 #define __X_SIZE_ABSOLUTE 536 #define __Y_SIZE_ABSOLUTE 537 #define __USE_SIZE_OF_IMAGE 538 #define __PUT_ON_DESKTOP 539 #define __MAKE_STICKY 540 #define __IS_INTERNAL 541 #define __SHOW_BY_DEFAULT 542 #define __LABEL 543 #define __SOLID_COLOR 560 #define __BACKGROUND_LAYER 561 #define __FORGROUND_LAYER 562 #define __USE_ON_DESKTOP 564 #define __DESKTOP_ALL -1 #define __TYPE_NORMAL 5 #define __TYPE_GLOBAL 7 /* possible actions that can be performed */ #define __A_EXEC exec #define __A_CMD #define __A_NONE nop #define __A_EXIT exit #define __A_ALERT alert #define __A_SHOW_MENU menus show #define __A_HIDE_MENU menus hide #define __A_CLEANUP desk arrange #define __A_ABOUT about #define __A_MOVE wop * mo ptr #define __A_RESIZE wop * sz ptr #define __A_RAISE wop * ra #define __A_LOWER wop * lo #define __A_RESIZE_H wop * sz ptr-h #define __A_RESIZE_V wop * sz ptr-v #define __A_KILL wop * close #define __A_KILL_NASTY wop * kill #define __A_STICK wop * st #define __A_ICONIFY wop * ic #define __A_SHADE wop * sh #define __A_MAX_HEIGHT wop * th #define __A_MAX_WIDTH wop * tw #define __A_MAX_SIZE wop * ts #define __A_SET_LAYER wop * la #define __A_SNAPSHOT remember * all #define __A_ZOOM wop * zoom #define __A_FULLSCREEN wop * fs #define __A_RAISE_LOWER wop * raiselower #define __A_SET_BORDER wop * bo #define __A_ICONIFY_NG wop % ic #define __A_KILL_NG wop % close #define __A_MOVE_NG wop % mo ptr #define __A_RAISE_NG wop % ra #define __A_LOWER_NG wop % lo #define __A_STICK_NG wop % st #define __A_SHADE_NG wop % sh #define __A_RAISE_LOWER_NG wop % raiselower #define __A_SET_BORDER_NG wop % bo #define __A_SKIPFOCUS wop * skipfocus #define __A_SKIPTASK wop * skiptask #define __A_SKIPWINLIST wop * skipwinlist #define __A_NEVERFOCUS wop * no_wm_focus #define __A_SKIPLISTS wop * skiplists #define __A_SEND_TO_NEXT_DESK wop * desk next #define __A_SEND_TO_PREV_DESK wop * desk prev #define __A_MOVE_WIN_TO_AREA wop * area #define __A_MOVE_WIN_BY_AREA wop * arel #define __A_DESKTOP_NEXT desk next #define __A_DESKTOP_PREV desk prev #define __A_DESKTOP_RAISE desk raise #define __A_DESKTOP_LOWER desk lower #define __A_DESKTOP_DRAG desk drag #define __A_DESKTOP_INPLACE desk this #define __A_GOTO_DESK desk goto #define __A_AREA_SET area set #define __A_AREA_MOVE_BY area move #define __A_DRAG_BUTTON button mo ptr #define __A_HIDESHOW_BUTTON button_show #define __A_SLIDEOUT slideout #define __A_FOCUS_NEXT focus next #define __A_FOCUS_PREV focus prev #define __A_BACKGROUND_SET bg use #define __A_START_GROUP gop * start #define __A_ADD_TO_GROUP gop * add #define __A_REMOVE_FROM_GROUP gop * del #define __A_BREAK_GROUP gop * break #define __A_SHOWHIDE_GROUP gop * showhide #define __A_CREATE_ICONBOX ibox new #define __MODIFIER_KEY 101 #define __TYPE 102 #define __ALLOW_ANY_MODIFIER_KEYS 103 #define __ACTION 104 #define __KEY 427 #define __EVENT 428 #define __ALLOW_ANY_BUTTON 930 #define __ALLOW_ANY_KEY 931 #define __NEXT_ACTION 105 #define __TOOLTIP_ACTION_TEXT 107 #define __NONE 0 #define __SHIFT 900 #define __LOCK 901 #define __CTRL 902 #define __ALT 903 #define __META2 904 #define __META3 905 #define __WINDOWS_KEY 906 #define __META5 907 #define __CTRL_ALT 910 #define __CTRL_SHIFT 911 #define __ALT_SHIFT 912 #define __CTRL_ALT_SHIFT 913 #define __CTRL_META4 914 #define __SHIFT_META4 915 #define __CTRL_META4_SHIFT 916 #define __CTRL_META5 917 #define __SHIFT_META5 918 #define __CTRL_META5_SHIFT 919 #define __WINDOWS_SHIFT 920 #define __WINDOWS_CTRL 921 #define __WINDOWS_ALT 922 #define __MOUSE_PRESS 0 #define __MOUSE_RELEASE 1 #define __MOUSE_ENTER 2 #define __MOUSE_LEAVE 3 #define __KEY_PRESS 4 #define __KEY_RELEASE 5 #define __DOUBLE_CLICK 6 #define __FOCUS_IN 7 #define __FOCUS_OUT 8 #define __USE_BORDER 480 #define __HAS_NAME 481 #define __HAS_CLASS 482 #define __HAS_TITLE 483 #define __IS_IN_WIDTH_RANGE 484 #define __IS_IN_HEIGHT_RANGE 485 #define __IS_TRANSIENT 486 #define __CANNOT_RESIZE_HORIZONTALLY 487 #define __CANNOT_RESIZE_VERTICALLY 488 #define __IS_SHAPED 489 #define __USE_ICON 490 #define __MAKE_WINDOW_STICKY 492 #define __RED 600 #define __GREEN 601 #define __BLUE 602 #define __SLIDE_DIRECTION 620 #define __TOOLTIP_ICON 640 #define __BUBBLE1_ICLASS 641 #define __BUBBLE2_ICLASS 642 #define __BUBBLE3_ICLASS 643 #define __BUBBLE4_ICLASS 644 #define __DISTANCE 645 #define __TOOLTIP_HELP_ICON 646 #define __BG_ICLASS 700 #define __ITEM_ICLASS 701 #define __SUBMENU_ICLASS 702 #define __USE_ITEM_BACKGROUNDS 703 #define __MAXIMUM_NUMBER_OF_COLUMNS 704 #define __MAXIMUM_NUMBER_OF_ROWS 705 #define __STYLE 706 #define __MENU_ITEM 707 #define __SUMENU 708 #define __MENU_ACTION 709 #define __MENU_PREBUILT 710 #define __MENU_TITLE 711 #define __CURSOR 800 #define __BG_COLOR 801 #define __FG_COLOR 802 #define __XBM_FILE 803 #define __NATIVE_ID 804 #define __TRANSPARENCY 2001 #define __SHOW_NAMES 2002 #define __ICON_SIZE 2003 #define __ICON_MODE 2004 #define __SCROLLBAR_SIDE 2005 #define __SCROLLBAR_ARROWS 2006 #define __AUTOMATIC_RESIZE 2007 #define __SHOW_ICON_BASE 2008 #define __SCROLLBAR_AUTOHIDE 2009 #define __COVER_HIDE 2010 #define __RESIZE_ANCHOR 2011 #define __ICONBOX_ANIMATE 2012 #define __EXTRA_HEAD 2013 #define __HORIZONTAL 0 #define __VERTICAL 1 #define __BAR_TOP 0 #define __BAR_LEFT 0 #define __BAR_BOTTOM 1 #define __BAR_RIGHT 1 #define __START 0 #define __BOTH 1 #define __FINISH 2 #define __NEITHER 3 /* Native cursor definitions */ #define XC_NONE 999 #define XC_x_CURSOR 0 #define XC_ARROW 2 #define XC_BASED_ARROW_DOWN 4 #define XC_BASED_ARROW_UP 6 #define XC_BOAT 8 #define XC_BOGOSITY 10 #define XC_BOTTOM_LEFT_CORNER 12 #define XC_BOTTOM_RIGHT_CORNER 14 #define XC_BOTTOM_SIDE 16 #define XC_BOTTOM_TEE 18 #define XC_BOX_SPIRAL 20 #define XC_CENTER_PTR 22 #define XC_CIRCLE 24 #define XC_CLOCK 26 #define XC_COFFEE_MUG 28 #define XC_CROSS 30 #define XC_CROSS_REVERSE 32 #define XC_CROSSHAIR 34 #define XC_DIAMOND_CROSS 36 #define XC_DOT 38 #define XC_DOTBOX 40 #define XC_DOUBLE_ARROW 42 #define XC_DRAFT_LARGE 44 #define XC_DRAFT_SMALL 46 #define XC_DRAPED_BOX 48 #define XC_EXCHANGE 50 #define XC_FLEUR 52 #define XC_GOBBLER 54 #define XC_GUMBY 56 #define XC_HAND1 58 #define XC_HAND2 60 #define XC_HEART 62 #define XC_ICON 64 #define XC_IRON_CROSS 66 #define XC_LEFT_PTR 68 #define XC_LEFT_SIDE 70 #define XC_LEFT_TEE 72 #define XC_LEFTBUTTON 74 #define XC_LL_ANGLE 76 #define XC_LR_ANGLE 78 #define XC_MAN 80 #define XC_MIDDLEBUTTON 82 #define XC_MOUSE 84 #define XC_PENCIL 86 #define XC_PIRATE 88 #define XC_PLUS 90 #define XC_QUESTION_ARROW 92 #define XC_RIGHT_PTR 94 #define XC_RIGHT_SIDE 96 #define XC_RIGHT_TEE 98 #define XC_RIGHTBUTTON 100 #define XC_RTL_LOGO 102 #define XC_SAILBOAT 104 #define XC_SB_DOWN_ARROW 106 #define XC_SB_H_DOUBLE_ARROW 108 #define XC_SB_LEFT_ARROW 110 #define XC_SB_RIGHT_ARROW 112 #define XC_SB_UP_ARROW 114 #define XC_SB_V_DOUBLE_ARROW 116 #define XC_SHUTTLE 118 #define XC_SIZING 120 #define XC_SPIDER 122 #define XC_SPRAYCAN 124 #define XC_STAR 126 #define XC_TARGET 128 #define XC_TCROSS 130 #define XC_TOP_LEFT_ARROW 132 #define XC_TOP_LEFT_CORNER 134 #define XC_TOP_RIGHT_CORNER 136 #define XC_TOP_SIDE 138 #define XC_TOP_TEE 140 #define XC_TREK 142 #define XC_UL_ANGLE 144 #define XC_UMBRELLA 146 #define XC_UR_ANGLE 148 #define XC_WATCH 150 #define XC_XTERM 152 /*******************************************************************/ /* Convenience macros to make configuring E SO much simpler */ /*******************************************************************/ /*********** Window match convenience macros ***********************/ #define BEGIN_BORDER_MATCH(name, border) \ __MATCH_WINDOW __BGN;\ __NAME "name";\ __USE_BORDER border #define HAS_NAME(name) \ __HAS_NAME name #define HAS_CLASS(class) \ __HAS_CLASS class #define HAS_TITLE(title) \ __HAS_TITLE title #define IS_IN_WIDTH_RANGE(min, max) \ __IS_IN_WIDTH_RANGE min max #define IS_IN_HEIGHT_RANGE(min, max) \ __IS_IN_HEIGHT_RANGE min max #define CANNOT_RESIZE_HORIZONTALLY \ __CANNOT_RESIZE_HORIZONTALLY __ON #define CANNOT_RESIZE_VERTICALLY \ __CANNOT_RESIZE_VERTICALLY __ON #define MAKE_WINDOW_STICKY \ __MAKE_WINDOW_STICKY __ON #define IS_TRANSIENT \ __IS_TRANSIENT __ON #define IS_SHAPED \ __IS_SHAPED __ON #define USE_ICON(iclass) \ __USE_ICON iclass #define END_BORDER_MATCH \ __END #define USE_BORDER_FOR_CLIENT_WITH_TITLE(title, border) \ __MATCH_WINDOW __BGN;\ __NAME border"_MATCH";\ __USE_BORDER border;\ __HAS_TITLE title;\ __END #define USE_BORDER_FOR_CLIENT_WITH_NAME(name, border) \ __MATCH_WINDOW __BGN;\ __NAME border"_MATCH";\ __USE_BORDER border;\ __HAS_NAME name;\ __END #define USE_BORDER_FOR_CLIENT_WITH_CLASS(class, border) \ __MATCH_WINDOW __BGN;\ __NAME border"_MATCH";\ __USE_BORDER border;\ __HAS_CLASS class;\ __END #define USE_BORDER_FOR_TRANSIENT_CLIENT(border) \ __MATCH_WINDOW __BGN;\ __NAME border"_MATCH";\ __USE_BORDER border;\ __IS_TRANSIENT __ON;\ __END #define USE_BORDER_FOR_UNRESIZABLE_CLIENT(border) \ __MATCH_WINDOW __BGN;\ __NAME border"_MATCH";\ __USE_BORDER border;\ __CANNOT_RESIZE_HORIZONTALLY __ON;\ __CANNOT_RESIZE_VERTICALLY __ON;\ __END #define USE_BORDER_FOR_SHAPED_CLIENT(border) \ __MATCH_WINDOW __BGN;\ __NAME border"_MATCH";\ __USE_BORDER border;\ __IS_SHAPED __ON;\ __END #define USE_ICON_IMAGE_FOR_CLIENT_TITLE(title, image) \ __MATCH_WINDOW __BGN;\ __NAME image"_MATCH";\ __USE_ICON image;\ __HAS_TITLE title;\ __END #define USE_ICON_IMAGE_FOR_CLIENT_NAME(name, image) \ __MATCH_WINDOW __BGN;\ __NAME image"_MATCH";\ __USE_ICON image;\ __HAS_NAME name;\ __END #define USE_ICON_IMAGE_FOR_CLIENT_CLASS(class, image) \ __MATCH_WINDOW __BGN;\ __NAME image"_MATCH";\ __USE_ICON image;\ __HAS_CLASS class;\ __END #define MAKE_WINDOW_STICKY_BY_TITLE(title) \ __MATCH_WINDOW __BGN;\ __NAME title_"STICKYTITLE";\ __MAKE_WINDOW_STICKY 1;\ __HAS_TITLE title;\ __END #define MAKE_WINDOW_STICKY_BY_CLASS(class) \ __MATCH_WINDOW __BGN;\ __NAME class"_STICKYCLASS";\ __MAKE_WINDOW_STICKY 1;\ __HAS_CLASS class;\ __END #define MAKE_WINDOW_STICKY_BY_NAME(name) \ __MATCH_WINDOW __BGN;\ __NAME name"_STICKYNAME";\ __MAKE_WINDOW_STICKY 1;\ __HAS_NAME name;\ __END /* Obsolete windowmatch macros */ #define USE_ICON_IMAGECLASS_FOR_CLIENT_TITLE(title, iclass) #define USE_ICON_IMAGECLASS_FOR_CLIENT_NAME(name, iclass) #define USE_ICON_IMAGECLASS_FOR_CLIENT_CLASS(class, iclass) #define USE_ICON_IMAGES_FOR_CLIENT_TITLE(title, image, image2, image3) #define USE_ICON_IMAGES_FOR_CLIENT_NAME(name, image, image2, image3) #define WINDOW_ON_DESK_BY_NAME(name,desk) #define WINDOW_ON_DESK_BY_TITLE(title,desk) #define WINDOW_ON_DESK_BY_CLASS(class,desk) /*********** Menu creation macros **********************************/ #define BEGIN_NEW_DIRSCAN_MENU(name, style, directory) \ __MENU __BGN;\ __MENU_PREBUILT name style "dirscan" directory #define BEGIN_NEW_GNOME_MENU(name, style, directory) \ __MENU __BGN;\ __MENU_PREBUILT name style "gnome" directory #define BEGIN_NEW_BORDERS_MENU(name, style) \ __MENU __BGN;\ __MENU_PREBUILT name style "borders" #define BEGIN_NEW_THEMES_MENU(name, style) \ __MENU __BGN;\ __MENU_PREBUILT name style "themes" #define BEGIN_NEW_WINDOWLIST_MENU(name, style) \ __MENU __BGN;\ __MENU_PREBUILT name style "windowlist" #define BEGIN_NEW_DESKTOPWINDOWLIST_MENU(name, style) \ __MENU __BGN;\ __MENU_PREBUILT name style "desktopwindowlist" #define ADD_MENU_TITLE(name) \ __MENU_TITLE name #define BEGIN_NEW_FILE_MENU(name, style, thefile) \ __MENU __BGN;\ __MENU_PREBUILT name style "file" thefile #define NORMAL_MENU_STYLE_VERTICAL(name, border, tclass, bg_iclass, item_iclass, submenu_iclass, max_items) \ __MENU_STYLE __BGN;\ __NAME name;\ __BORDER border;\ __TCLASS tclass;\ __BG_ICLASS bg_iclass;\ __ITEM_ICLASS item_iclass;\ __SUBMENU_ICLASS submenu_iclass;\ __USE_ITEM_BACKGROUNDS __OFF;\ __MAXIMUM_NUMBER_OF_ROWS max_items;\ __END #define NORMAL_MENU_STYLE_HORIZONTAL(name, border, tclass, bg_iclass, item_iclass, submenu_iclass, max_items) \ __MENU_STYLE __BGN;\ __NAME name;\ __BORDER border;\ __TCLASS tclass;\ __BG_ICLASS bg_iclass;\ __ITEM_ICLASS item_iclass;\ __SUBMENU_ICLASS submenu_iclass;\ __USE_ITEM_BACKGROUNDS __OFF;\ __MAXIMUM_NUMBER_OF_COLUMNS max_items;\ __END #define NEXTSTEP_MENU_STYLE_VERTICAL(name, border, tclass, item_iclass, submenu_iclass, max_items) \ __MENU_STYLE __BGN;\ __NAME name;\ __BORDER border;\ __TCLASS tclass;\ __ITEM_ICLASS item_iclass;\ __SUBMENU_ICLASS submenu_iclass;\ __USE_ITEM_BACKGROUNDS __ON;\ __MAXIMUM_NUMBER_OF_ROWS max_items;\ __END #define NEXTSTEP_MENU_STYLE_HORIZONTAL(name, border, tclass, item_iclass, submenu_iclass, max_items) \ __MENU_STYLE __BGN;\ __NAME name;\ __BORDER border;\ __TCLASS tclass;\ __ITEM_ICLASS item_iclass;\ __SUBMENU_ICLASS submenu_iclass;\ __USE_ITEM_BACKGROUNDS __ON;\ __MAXIMUM_NUMBER_OF_COLUMNS max_items;\ __END #define BEGIN_NEW_MENU(name, style) \ __MENU __BGN;\ __NAME name;\ __STYLE style #define END_MENU \ __END #define ADD_MENU_ITEM(text, icon_iclass, action, parameters) \ __MENU_ITEM icon_iclass text;\ __MENU_ACTION action parameters #define ADD_MENU_TEXT_ITEM(text, action, parameters) \ __MENU_ITEM "NULL" text;\ __MENU_ACTION action parameters #define ADD_MENU_ICON_ITEM(icon_iclass, action, parameters) \ __MENU_ITEM icon_iclass;\ __MENU_ACTION action parameters #define ADD_MENU_SUBMENU_ITEM(text, icon_iclass, submenu_name) \ __SUMENU submenu_name icon_iclass text #define ADD_MENU_SUBMENU_TEXT_ITEM(text, submenu_name) \ __SUMENU submenu_name "NULL" text #define ADD_MENU_SUBMENU_ICON_ITEM(icon_iclass, submenu_name) \ __SUMENU submenu_name icon_iclass /*********** Tooltip creation macros *******************************/ #define DEFINE_TOOLTIP(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS main_iclass;\ __BUBBLE1_ICLASS cloud1_iclass;\ __BUBBLE2_ICLASS cloud2_iclass;\ __BUBBLE3_ICLASS cloud3_iclass;\ __BUBBLE4_ICLASS cloud4_iclass;\ __TOOLTIP_HELP_ICON "DO_HELP_BUTTON";\ __TCLASS tclass;\ __DISTANCE distance;\ __END #define DEFINE_TOOLTIP_WITH_LOGO(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance, logo) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS main_iclass;\ __BUBBLE1_ICLASS cloud1_iclass;\ __BUBBLE2_ICLASS cloud2_iclass;\ __BUBBLE3_ICLASS cloud3_iclass;\ __BUBBLE4_ICLASS cloud4_iclass;\ __TOOLTIP_HELP_ICON logo;\ __TCLASS tclass;\ __DISTANCE distance;\ __END #define DEFINE_TOOLTIP_SIMPLE(name, iclass, tclass, distance) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS iclass;\ __TCLASS tclass;\ __DISTANCE distance;\ __END #define TOOLTIP(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS main_iclass;\ __BUBBLE1_ICLASS cloud1_iclass;\ __BUBBLE2_ICLASS cloud2_iclass;\ __BUBBLE3_ICLASS cloud3_iclass;\ __BUBBLE4_ICLASS cloud4_iclass;\ __TOOLTIP_HELP_ICON "DO_HELP_BUTTON";\ __TCLASS tclass;\ __DISTANCE distance;\ __END #define TOOLTIP_WITH_LOGO(name, main_iclass, cloud1_iclass, cloud2_iclass, cloud3_iclass, cloud4_iclass, tclass, distance, logo) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS main_iclass;\ __BUBBLE1_ICLASS cloud1_iclass;\ __BUBBLE2_ICLASS cloud2_iclass;\ __BUBBLE3_ICLASS cloud3_iclass;\ __BUBBLE4_ICLASS cloud4_iclass;\ __TOOLTIP_HELP_ICON logo;\ __TCLASS tclass;\ __DISTANCE distance;\ __END #define TOOLTIP_SIMPLE(name, iclass, tclass, distance) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS iclass;\ __TCLASS tclass;\ __DISTANCE distance;\ __END #define TOOLTIP_SIMPLE_WITH_LOGO(name, iclass, tclass, distance, logo) \ __TOOLTIP __BGN;\ __NAME name;\ __ICLASS iclass;\ __TCLASS tclass;\ __TOOLTIP_HELP_ICON logo;\ __DISTANCE distance;\ __END /*********** Sound creation macros *******************************/ #define BEGIN_SOUND \ __SOUND __BGN #define END_SOUND \ __END /*********** Action macros ***************************************/ #define BEGIN_ACLASS(name, type) \ __ACLASS __BGN; \ __NAME name; \ __TYPE type #define ACLASS_TOOLTIP(tooltip) \ __TOOLTIP_TEXT tooltip #define ACLASS_ACTION(action, event) \ __EVENT event; \ __ACTION action #define ACLASS_ACTION_WITH_TOOLTIP(action, event, tooltip) \ __TOOLTIP_ACTION_TEXT tooltip; \ __EVENT event; \ __ACTION action #define ACLASS_SHOW_MENU(menuname, event) \ __EVENT event; \ __ACTION __A_SHOW_MENU named menuname #define ACLASS_BUTTON(button, modifier) \ __BUTTON button; \ __MODIFIER_KEY modifier #define ACLASS_KEY(key, mod) \ __KEY key; \ __MODIFIER_KEY mod #define ACLASS_ALLOW_ANY_BUTTON \ __ALLOW_ANY_BUTTON __ON #define ACLASS_ALLOW_ANY_MODIFIER_KEYS \ __ALLOW_ANY_MODIFIER_KEYS __ON #define ACLASS_ALLOW_ANY_KEY \ __ALLOW_ANY_KEY __ON #define ACLASS_NEXT_ACTION \ __NEXT_ACTION #define END_ACLASS \ __END /*********** Cursor macros ***************************************/ #define CURSOR(name, fg, bg, file) \ __CURSOR __BGN; \ __NAME name; \ __FG_COLOR fg; \ __BG_COLOR bg; \ __XBM_FILE file; \ __END #define NATIVE_CURSOR(name, fg, bg, id) \ __CURSOR __BGN; \ __NAME name; \ __FG_COLOR fg; \ __BG_COLOR bg; \ __NATIVE_ID id; \ __END /*********** Slideout and button macros **************************/ #define BEGIN_BUTTON(name, iclass, aclass) \ __BUTTON __BGN; \ __NAME name; \ __ICLASS iclass; \ __ACLASS aclass #define BUTTON_LABEL(label) \ __LABEL label #define BUTTON_CURSOR(cursor) \ __CURSOR cursor #define BUTTON_TEXT(text) \ __TCLASS text #define BUTTON_IS_INTERNAL \ __IS_INTERNAL __ON #define BUTTON_SHOW_BY_DEFAULT \ __SHOW_BY_DEFAULT __ON #define BUTTON_USE_SIZE_OF_IMAGE \ __USE_SIZE_OF_IMAGE __ON #define BUTTON_MAKE_STICKY \ __MAKE_STICKY __ON #define BUTTON_KEEP_ON_TOP \ __KEEP_ON_TOP __ON #define BUTTON_PUT_ON_DESKTOP(num) \ __PUT_ON_DESKTOP num #define BUTTON_LOCATION(xo, xp, xa, yo, yp, ya) \ __X_ORIGIN xo; \ __X_PERCENTAGE xp; \ __X_ABSOLUTE xa; \ __Y_ORIGIN yo; \ __Y_PERCENTAGE yp; \ __Y_ABSOLUTE ya #define END_BUTTON \ __END #define BEGIN_SLIDEOUT(name, direction) \ __SLIDEOUT __BGN;\ __NAME name;\ __SLIDE_DIRECTION direction #define SLIDEOUT_BUTTON(name) \ __BUTTON name #define ADD_BUTTON_TO_SLIDEOUT(name) \ __BUTTON name #define END_SLIDEOUT \ __END /*********** Desktop BG creation macros ***************************/ #define BEGIN_BACKGROUND(name) \ __DESKTOP __BGN;\ __NAME name #define END_BACKGROUND \ __END #define SET_SOLID(color) \ __SOLID_COLOR color #define ON_DESKTOP(num) \ __USE_ON_DESKTOP num #define DEFAULT_BACKGROUND \ __USE_ON_DESKTOP __DESKTOP_ALL #define ADD_BACKGROUND_TILED(file)\ __BACKGROUND_LAYER file 1 1 0 0 0 0 #define ADD_BACKGROUND_SCALED(file)\ __BACKGROUND_LAYER file 0 0 0 0 1024 1024 #define ADD_BACKGROUND_TILED_SCALED_VERTICALLY(file)\ __BACKGROUND_LAYER file 1 0 0 0 0 1024 #define ADD_BACKGROUND_TILED_SCALED_HORIZONTALLY(file)\ __BACKGROUND_LAYER file 1 0 0 0 1024 0 #define ADD_BACKGROUND_CENTERED(file)\ __BACKGROUND_LAYER file 0 1 512 512 0 0 #define ADD_BACKGROUND_TILED_CENTER(file)\ __BACKGROUND_LAYER file 1 1 512 512 0 0 #define ADD_BACKGROUND_SCALED_RETAIN_ASPECT(file)\ __BACKGROUND_LAYER file 0 1 512 512 1024 1024 #define ADD_BACKGROUND_TILED_SCALED_RETAIN_ASPECT(file)\ __BACKGROUND_LAYER file 1 1 512 512 1024 1024 #define ADD_OVERLAY_IMAGE_CENTERED(file) \ __FORGROUND_LAYER file 1 512 512 0 0 #define ADD_OVERLAY_IMAGE_TOP_LEFT(file) \ __FORGROUND_LAYER file 1 0 0 0 0 #define ADD_OVERLAY_IMAGE_TOP_RIGHT(file) \ __FORGROUND_LAYER file 1 1024 0 0 0 #define ADD_OVERLAY_IMAGE_BOTTOM_LEFT(file) \ __FORGROUND_LAYER file 1 0 1024 0 0 #define ADD_OVERLAY_IMAGE_BOTTOM_RIGHT(file) \ __FORGROUND_LAYER file 1 1024 1024 0 0 #define ADD_OVERLAY_IMAGE_BOTTOM_MIDDLE(file) \ __FORGROUND_LAYER file 1 512 1024 0 0 #define ADD_OVERLAY_IMAGE_TOP_MIDDLE(file) \ __FORGROUND_LAYER file 1 512 0 0 0 #define ADD_OVERLAY_IMAGE_LEFT_MIDDLE(file) \ __FORGROUND_LAYER file 1 0 512 0 0 #define ADD_OVERLAY_IMAGE_RIGHT_MIDDLE(file) \ __FORGROUND_LAYER file 1 1024 512 0 0 #define ADD_OVERLAY_IMAGE_SCALED(file) \ __FORGROUND_LAYER file 0 0 0 1024 1024 #define ADD_OVERLAY_IMAGE_ASPECT(file) \ __FORGROUND_LAYER file 1 512 512 1024 1024 #define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_RIGHT(file)\ __BACKGROUND_LAYER file 0 1 1024 512 0 1024 #define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_LEFT(file)\ __BACKGROUND_LAYER file 0 1 0 512 0 1024 #define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_TOP(file)\ __BACKGROUND_LAYER file 0 1 512 0 1024 0 #define ADD_BACKGROUND_SCALED_RETAIN_ASPECT_ALIGN_BOTTOM(file)\ __BACKGROUND_LAYER file 0 1 512 1024 1024 0 /*********** Border creation macros *******************************/ #define BEGIN_BORDER(name, left, right, top, bottom) \ __BORDER __BGN; \ __NAME name; \ __BORDER_SIZE_LEFT left; \ __BORDER_SIZE_RIGHT right; \ __BORDER_SIZE_TOP top; \ __BORDER_SIZE_BOTTOM bottom #define BORDER_CHANGES_SHAPE \ __CHANGES_SHAPE __ON #define BORDER_SHADE_DIRECTION(direction) \ __SHADE_DIRECTION direction #define BORDER_SHADE_UP \ __SHADE_DIRECTION __UP #define BORDER_GROUP_NAME(name) \ __BORDER_GROUP_NAME name #define BEGIN_BORDER_PART(iclass, min_width, max_width, min_height, max_height) \ __BORDER_PART __BGN; \ __ICLASS iclass; \ __MIN_WIDTH min_width; \ __MAX_WIDTH max_width; \ __MIN_HEIGHT min_height; \ __MAX_HEIGHT max_height #define BORDER_PART_KEEP_WHEN_SHADED(value) \ __KEEP_WHEN_SHADED value; #define BORDER_PART_KEEP_ON_TOP \ __KEEP_ON_TOP __ON #define BORDER_PART_ACTION(aclass) \ __ACLASS aclass #define BORDER_PART_CURSOR(cursor) \ __CURSOR cursor #define BORDER_PART_TITLE(tclass) \ __TCLASS tclass; \ __FLAGS __FLAG_TITLE #define BORDER_PART_TITLE_AND_ICON(tclass) \ __TCLASS tclass; \ __FLAGS __FLAG_TITLE_AND_ICON #define BORDER_PART_MINI_ICON \ __FLAGS __FLAG_MINI_ICON #define BORDER_PART_REGION(o1, x1p, x1, y1p, y1, o2, x2p, x2, y2p, y2) \ __TOPLEFT_ORIGIN o1; \ __TOPLEFT_X_PERCENTAGE x1p; \ __TOPLEFT_X_ABSOLUTE x1; \ __TOPLEFT_Y_PERCENTAGE y1p; \ __TOPLEFT_Y_ABSOLUTE y1; \ __BOTTOMRIGHT_ORIGIN o2; \ __BOTTOMRIGHT_X_PERCENTAGE x2p; \ __BOTTOMRIGHT_X_ABSOLUTE x2; \ __BOTTOMRIGHT_Y_PERCENTAGE y2p; \ __BOTTOMRIGHT_Y_ABSOLUTE y2 #define END_BORDER_PART \ __END #define END_BORDER \ __END /*********** Image creation macros ********************************/ #define BEGIN_IMAGE(name) \ __ICLASS __BGN; \ __NAME name #define IMAGE_NORMAL(file, fill, l, r, t, b) \ __NORMAL file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_HILITED(file, fill, l, r, t, b) \ __HILITED file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_CLICKED(file, fill, l, r, t, b) \ __CLICKED file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_NORMAL_ACTIVE(file, fill, l, r, t, b) \ __NORMAL_ACTIVE file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_HILITED_ACTIVE(file, fill, l, r, t, b) \ __HILITED_ACTIVE file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_CLICKED_ACTIVE(file, fill, l, r, t, b) \ __CLICKED_ACTIVE file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_NORMAL_STICKY(file, fill, l, r, t, b) \ __NORMAL_STICKY file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_HILITED_STICKY(file, fill, l, r, t, b) \ __HILITED_STICKY file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_CLICKED_STICKY(file, fill, l, r, t, b) \ __CLICKED_STICKY file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_NORMAL_ACTIVE_STICKY(file, fill, l, r, t, b) \ __NORMAL_ACTIVE_STICKY file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_NORMAL_ACTIVE_HILITED(file, fill, l, r, t, b) \ __NORMAL_ACTIVE_HILITED file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_NORMAL_ACTIVE_CLICKED(file, fill, l, r, t, b) \ __NORMAL_ACTIVE_CLICKED file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_HILITED_ACTIVE_STICKY(file, fill, l, r, t, b) \ __HILITED_ACTIVE_STICKY file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_CLICKED_ACTIVE_STICKY(file, fill, l, r, t, b) \ __CLICKED_ACTIVE_STICKY file; \ __FILLRULE fill; \ __EDGE_SCALING l r t b #define IMAGE_PADDING(l, r, t, b) \ __PADDING l r t b #define IMAGE_BEVEL(bevel) \ __BEVEL bevel #define IMAGE_ROTATE(rotate) \ __ROTATE rotate #define IMAGE_FLIP(flip) \ __FLIP flip #define END_IMAGE \ __END #define BEGIN_TEXT(name) \ __TCLASS __BGN; \ __NAME name #define TEXT_NORMAL(font, effect, fgcolor, bgcolor) \ __NORMAL font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_CLICKED(font, effect, fgcolor, bgcolor) \ __CLICKED font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_HILITED(font, effect, fgcolor, bgcolor) \ __HILITED font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_NORMAL_ACTIVE(font, effect, fgcolor, bgcolor) \ __NORMAL_ACTIVE font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_CLICKED_ACTIVE(font, effect, fgcolor, bgcolor) \ __CLICKED_ACTIVE font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_HILITED_ACTIVE(font, effect, fgcolor, bgcolor) \ __HILITED_ACTIVE font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_NORMAL_STICKY(font, effect, fgcolor, bgcolor) \ __NORMAL_STICKY font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_CLICKED_STICKY(font, effect, fgcolor, bgcolor) \ __CLICKED_STICKY font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_HILITED_STICKY(font, effect, fgcolor, bgcolor) \ __HILITED_STICKY font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_NORMAL_ACTIVE_STICKY(font, effect, fgcolor, bgcolor) \ __NORMAL_ACTIVE_STICKY font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_NORMAL_ACTIVE_CLICKED(font, effect, fgcolor, bgcolor) \ __NORMAL_ACTIVE_CLICKED font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_NORMAL_ACTIVE_HILITED(font, effect, fgcolor, bgcolor) \ __NORMAL_ACTIVE_HILITED font; \ __DRAWING_EFFECT effect; \ __FORGROUND_COLOR fgcolor; \ __BACKGROUND_COLOR bgcolor #define TEXT_JUSTIFY_LEFT \ __JUSTIFICATION 0 #define TEXT_JUSTIFY_CENTER \ __JUSTIFICATION 512 #define TEXT_JUSTIFY_RIGHT \ __JUSTIFICATION 1024 #define TEXT_ORIENTATION(direction) \ __ORIENTATION direction #define END_TEXT \ __END #define BEGIN_FONTS \ __FONTS __BGN #define END_FONTS \ __END #endif /* __E16_DEFINITIONS__ */