Commit 51dd1c6bd67c70ce0bdcfd6491762fcf62a2d7a1
1 parent
9a07d778
Exists in
master
and in
5 other branches
Implementando suporte aos menus do MAC
Showing
7 changed files
with
325 additions
and
12 deletions
Show diff stats
pw3270.komodoproject
| 1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | 2 | <!-- Komodo Project File - DO NOT EDIT --> |
| 3 | 3 | <project id="835c3792-90af-274e-8705-405cacf376e1" kpf_version="5" name="pw3270.komodoproject"> |
| 4 | +<preference-set idref="835c3792-90af-274e-8705-405cacf376e1"> | |
| 5 | + <long id="caretStyle">1</long> | |
| 6 | + <long id="caretWidth">1</long> | |
| 7 | + <boolean id="checkDiskFile">1</boolean> | |
| 8 | + <boolean id="checkNetworkDiskFile">1</boolean> | |
| 9 | + <long id="codeintel_highlight_variables_auto_delay">250</long> | |
| 10 | + <boolean id="codeintel_highlight_variables_auto_keyboard">0</boolean> | |
| 11 | + <boolean id="codeintel_highlight_variables_auto_mouse">1</boolean> | |
| 12 | + <boolean id="codeintel_highlight_variables_match_prefix">0</boolean> | |
| 13 | + <long id="codeintel_highlight_variables_min_auto_length">2</long> | |
| 14 | + <boolean id="codeintel_highlight_variables_use_scope">1</boolean> | |
| 15 | + <boolean id="dedentOnColon">0</boolean> | |
| 16 | + <string id="defaultDateFormat">%25a %25b %25d %25H:%25M:%25S %25Y</string> | |
| 17 | + <string id="donotask_action_close_deleted_files"></string> | |
| 18 | + <string id="donotask_action_dragdrop_uri"></string> | |
| 19 | + <string id="donotask_action_reload_changed_files"></string> | |
| 20 | + <boolean id="donotask_buffer_conflicts_with_file_on_disk">0</boolean> | |
| 21 | + <boolean id="donotask_close_deleted_files">0</boolean> | |
| 22 | + <boolean id="donotask_dragdrop_uri">0</boolean> | |
| 23 | + <boolean id="donotask_reload_changed_files">0</boolean> | |
| 24 | + <boolean id="donotask_revert_buffer">0</boolean> | |
| 25 | + <boolean id="donotask_treat_large_documents_as_text">0</boolean> | |
| 26 | + <string id="editAutoIndentStyle">smart</string> | |
| 27 | + <long id="editAutoWrapColumn">80</long> | |
| 28 | + <boolean id="editBackspaceDedents">1</boolean> | |
| 29 | + <boolean id="editElectricBrace">1</boolean> | |
| 30 | + <boolean id="editFoldLines">1</boolean> | |
| 31 | + <string id="editFoldStyle">squaretree</string> | |
| 32 | + <boolean id="editRestoreFoldPoints">0</boolean> | |
| 33 | + <boolean id="editSmartCutCopyWithoutSelection">1</boolean> | |
| 34 | + <boolean id="editSmartSoftCharacters">1</boolean> | |
| 35 | + <boolean id="editTabCompletes">0</boolean> | |
| 36 | + <boolean id="editUseEdge">1</boolean> | |
| 37 | + <boolean id="editUseLinting">1</boolean> | |
| 38 | + <long id="editWordWrapIndentation">0</long> | |
| 39 | + <long id="editWordWrapMarker">0</long> | |
| 40 | + <long id="editWrapType">0</long> | |
| 41 | + <boolean id="enableSmartSoftCharactersInsideLine">0</boolean> | |
| 42 | + <boolean id="encodingAutoDetect">1</boolean> | |
| 43 | + <string id="encodingDefault">mac-roman</string> | |
| 44 | + <boolean id="encodingEnvironment">1</boolean> | |
| 45 | + <boolean id="encodingHTML">0</boolean> | |
| 46 | + <boolean id="encodingModeline">1</boolean> | |
| 47 | + <boolean id="encodingXMLDec">1</boolean> | |
| 48 | + <boolean id="foldSeparateBlockParts">0</boolean> | |
| 49 | + <boolean id="hyperlinksEnableGotoDefinition">1</boolean> | |
| 50 | + <boolean id="hyperlinksEnabled">1</boolean> | |
| 51 | + <string relative="path" id="import_dirname"></string> | |
| 52 | + <string id="import_exclude_matches">*.*~;*.bak;*.tmp;CVS;.#*;*.pyo;*.pyc;.svn;.git;.hg;.bzr;*%25*;tmp*.html;.DS_Store;*.swp;*.kpf;*.komodoproject;.komodotools;__pycache__</string> | |
| 53 | + <string id="import_include_matches"></string> | |
| 54 | + <boolean id="indentStringsAfterParens">0</boolean> | |
| 55 | + <long id="indentWidth">4</long> | |
| 56 | + <string id="jshintOptions"></string> | |
| 57 | + <string id="jshint_linter_chooser">default</string> | |
| 58 | + <string id="jshint_linter_specific"></string> | |
| 59 | + <string id="jslintOptions"></string> | |
| 60 | + <string id="jslint_linter_chooser">default</string> | |
| 61 | + <string id="jslint_linter_specific"></string> | |
| 62 | +<preference-set id="languages"> | |
| 63 | +<preference-set id="languages/Ada"> | |
| 64 | + <boolean id="Ada/newBOM">0</boolean> | |
| 65 | + <string id="Ada/newEncoding">Default Encoding</string> | |
| 66 | +</preference-set> | |
| 67 | +<preference-set id="languages/Apache"> | |
| 68 | + <boolean id="Apache/newBOM">0</boolean> | |
| 69 | + <string id="Apache/newEncoding">Default Encoding</string> | |
| 70 | +</preference-set> | |
| 71 | +<preference-set id="languages/Baan"> | |
| 72 | + <boolean id="Baan/newBOM">0</boolean> | |
| 73 | + <string id="Baan/newEncoding">Default Encoding</string> | |
| 74 | +</preference-set> | |
| 75 | +<preference-set id="languages/Batch"> | |
| 76 | + <boolean id="Batch/newBOM">0</boolean> | |
| 77 | + <string id="Batch/newEncoding">Default Encoding</string> | |
| 78 | +</preference-set> | |
| 79 | +<preference-set id="languages/Bullant"> | |
| 80 | + <boolean id="Bullant/newBOM">0</boolean> | |
| 81 | + <string id="Bullant/newEncoding">Default Encoding</string> | |
| 82 | +</preference-set> | |
| 83 | +<preference-set id="languages/C#"> | |
| 84 | + <boolean id="C#/newBOM">0</boolean> | |
| 85 | + <string id="C#/newEncoding">Default Encoding</string> | |
| 86 | +</preference-set> | |
| 87 | +<preference-set id="languages/C++"> | |
| 88 | + <boolean id="C++/newBOM">0</boolean> | |
| 89 | + <string id="C++/newEncoding">utf-8</string> | |
| 90 | +</preference-set> | |
| 91 | +<preference-set id="languages/CSS"> | |
| 92 | + <boolean id="CSS/newBOM">0</boolean> | |
| 93 | + <string id="CSS/newEncoding">Default Encoding</string> | |
| 94 | +</preference-set> | |
| 95 | +<preference-set id="languages/Diff"> | |
| 96 | + <boolean id="Diff/newBOM">0</boolean> | |
| 97 | + <string id="Diff/newEncoding">Default Encoding</string> | |
| 98 | +</preference-set> | |
| 99 | +<preference-set id="languages/Eiffel"> | |
| 100 | + <boolean id="Eiffel/newBOM">0</boolean> | |
| 101 | + <string id="Eiffel/newEncoding">Default Encoding</string> | |
| 102 | +</preference-set> | |
| 103 | +<preference-set id="languages/Errors"> | |
| 104 | + <boolean id="C++/newBOM">0</boolean> | |
| 105 | + <string id="C++/newEncoding">Default Encoding</string> | |
| 106 | +</preference-set> | |
| 107 | +<preference-set id="languages/Fortran"> | |
| 108 | + <boolean id="Fortran/newBOM">0</boolean> | |
| 109 | + <string id="Fortran/newEncoding">Default Encoding</string> | |
| 110 | +</preference-set> | |
| 111 | +<preference-set id="languages/Fortran 77"> | |
| 112 | + <boolean id="Fortran 77/newBOM">0</boolean> | |
| 113 | + <string id="Fortran 77/newEncoding">Default Encoding</string> | |
| 114 | +</preference-set> | |
| 115 | +<preference-set id="languages/HTML"> | |
| 116 | + <boolean id="HTML/newBOM">0</boolean> | |
| 117 | + <string id="HTML/newEncoding">Default Encoding</string> | |
| 118 | +</preference-set> | |
| 119 | +<preference-set id="languages/IDL"> | |
| 120 | + <boolean id="IDL/newBOM">0</boolean> | |
| 121 | + <string id="IDL/newEncoding">Default Encoding</string> | |
| 122 | +</preference-set> | |
| 123 | +<preference-set id="languages/Java"> | |
| 124 | + <boolean id="Java/newBOM">0</boolean> | |
| 125 | + <string id="Java/newEncoding">Default Encoding</string> | |
| 126 | +</preference-set> | |
| 127 | +<preference-set id="languages/JavaScript"> | |
| 128 | + <boolean id="JavaScript/newBOM">0</boolean> | |
| 129 | + <string id="JavaScript/newEncoding">Default Encoding</string> | |
| 130 | +</preference-set> | |
| 131 | +<preference-set id="languages/LaTeX"> | |
| 132 | + <boolean id="LaTeX/newBOM">0</boolean> | |
| 133 | + <string id="LaTeX/newEncoding">Default Encoding</string> | |
| 134 | +</preference-set> | |
| 135 | +<preference-set id="languages/Lisp"> | |
| 136 | + <boolean id="Lisp/newBOM">0</boolean> | |
| 137 | + <string id="Lisp/newEncoding">Default Encoding</string> | |
| 138 | +</preference-set> | |
| 139 | +<preference-set id="languages/Lua"> | |
| 140 | + <boolean id="Lua/newBOM">0</boolean> | |
| 141 | + <string id="Lua/newEncoding">Default Encoding</string> | |
| 142 | +</preference-set> | |
| 143 | +<preference-set id="languages/Makefile"> | |
| 144 | + <boolean id="Makefile/newBOM">0</boolean> | |
| 145 | + <string id="Makefile/newEncoding">Default Encoding</string> | |
| 146 | + <boolean id="useTabs">1</boolean> | |
| 147 | +</preference-set> | |
| 148 | +<preference-set id="languages/Matlab"> | |
| 149 | + <boolean id="Matlab/newBOM">0</boolean> | |
| 150 | + <string id="Matlab/newEncoding">Default Encoding</string> | |
| 151 | +</preference-set> | |
| 152 | +<preference-set id="languages/PHP"> | |
| 153 | + <boolean id="PHP/newBOM">0</boolean> | |
| 154 | + <string id="PHP/newEncoding">Default Encoding</string> | |
| 155 | +</preference-set> | |
| 156 | +<preference-set id="languages/Pascal"> | |
| 157 | + <boolean id="Pascal/newBOM">0</boolean> | |
| 158 | + <string id="Pascal/newEncoding">Default Encoding</string> | |
| 159 | +</preference-set> | |
| 160 | +<preference-set id="languages/Perl"> | |
| 161 | + <boolean id="Perl/newBOM">0</boolean> | |
| 162 | + <string id="Perl/newEncoding">Default Encoding</string> | |
| 163 | +</preference-set> | |
| 164 | +<preference-set id="languages/Python"> | |
| 165 | + <boolean id="Python/newBOM">0</boolean> | |
| 166 | + <string id="Python/newEncoding">ascii</string> | |
| 167 | +</preference-set> | |
| 168 | +<preference-set id="languages/Python3"> | |
| 169 | + <boolean id="Python3/newBOM">0</boolean> | |
| 170 | + <string id="Python3/newEncoding">ascii</string> | |
| 171 | +</preference-set> | |
| 172 | +<preference-set id="languages/RHTML"> | |
| 173 | + <boolean id="RHTML/newBOM">0</boolean> | |
| 174 | + <string id="RHTML/newEncoding">Default Encoding</string> | |
| 175 | + <long id="indentWidth">2</long> | |
| 176 | +</preference-set> | |
| 177 | +<preference-set id="languages/Ruby"> | |
| 178 | + <boolean id="Ruby/newBOM">0</boolean> | |
| 179 | + <string id="Ruby/newEncoding">Default Encoding</string> | |
| 180 | + <long id="indentWidth">2</long> | |
| 181 | +</preference-set> | |
| 182 | +<preference-set id="languages/SQL"> | |
| 183 | + <boolean id="SQL/newBOM">0</boolean> | |
| 184 | + <string id="SQL/newEncoding">Default Encoding</string> | |
| 185 | +</preference-set> | |
| 186 | +<preference-set id="languages/Tcl"> | |
| 187 | + <boolean id="Tcl/newBOM">0</boolean> | |
| 188 | + <string id="Tcl/newEncoding">Default Encoding</string> | |
| 189 | +</preference-set> | |
| 190 | +<preference-set id="languages/Text"> | |
| 191 | + <boolean id="Text/newBOM">0</boolean> | |
| 192 | + <string id="Text/newEncoding">Default Encoding</string> | |
| 193 | +</preference-set> | |
| 194 | +<preference-set id="languages/VisualBasic"> | |
| 195 | + <boolean id="VisualBasic/newBOM">0</boolean> | |
| 196 | + <string id="VisualBasic/newEncoding">utf-8</string> | |
| 197 | +</preference-set> | |
| 198 | +<preference-set id="languages/XML"> | |
| 199 | + <boolean id="XML/newBOM">0</boolean> | |
| 200 | + <string id="XML/newEncoding">utf-8</string> | |
| 201 | +</preference-set> | |
| 202 | +<preference-set id="languages/XSLT"> | |
| 203 | + <boolean id="XSLT/newBOM">0</boolean> | |
| 204 | + <string id="XSLT/newEncoding">utf-8</string> | |
| 205 | +</preference-set> | |
| 206 | +<preference-set id="languages/nnCrontab"> | |
| 207 | + <boolean id="nnCrontab/newBOM">0</boolean> | |
| 208 | + <string id="nnCrontab/newEncoding">Default Encoding</string> | |
| 209 | +</preference-set> | |
| 210 | +</preference-set> | |
| 211 | + <boolean id="lintClearOnTextChange">0</boolean> | |
| 212 | + <long id="lintDelay">1000</long> | |
| 213 | + <boolean id="lintEOLs">1</boolean> | |
| 214 | + <boolean id="lintHTML5Lib">0</boolean> | |
| 215 | + <boolean id="lintHTMLTidy">1</boolean> | |
| 216 | + <boolean id="lintHTML_CheckWith_Perl_HTML_Lint">0</boolean> | |
| 217 | + <boolean id="lintHTML_CheckWith_Perl_HTML_Tidy">0</boolean> | |
| 218 | + <boolean id="lintJavaScriptEnableStrict">1</boolean> | |
| 219 | + <boolean id="lintJavaScriptEnableWarnings">1</boolean> | |
| 220 | + <boolean id="lintJavaScript_SpiderMonkey">1</boolean> | |
| 221 | + <boolean id="lintWithJSHint">0</boolean> | |
| 222 | + <boolean id="lintWithJSLint">0</boolean> | |
| 223 | + <boolean id="lint_coffee_script">1</boolean> | |
| 224 | + <boolean id="lint_python3_with_standard_python">1</boolean> | |
| 225 | + <boolean id="lint_python_with_pychecker">0</boolean> | |
| 226 | + <boolean id="lint_python_with_pyflakes">0</boolean> | |
| 227 | + <boolean id="lint_python_with_pylint">0</boolean> | |
| 228 | + <boolean id="lint_python_with_standard_python">1</boolean> | |
| 229 | + <string id="perl_lintOption">cw</string> | |
| 230 | + <boolean id="perl_lintOption_disableBeginBlocks">1</boolean> | |
| 231 | + <boolean id="perl_lintOption_includeCurrentDirForLinter">1</boolean> | |
| 232 | + <string id="perl_lintOption_perlCriticLevel">off</string> | |
| 233 | + <string id="pychecker_checking_rcfile"></string> | |
| 234 | + <string id="pychecker_wrapper_location"></string> | |
| 235 | + <string id="pylint_checking_rcfile"></string> | |
| 236 | + <string id="ruby_lintOption">cwT</string> | |
| 237 | + <boolean id="scrollEndAtLastLine">0</boolean> | |
| 238 | + <long id="scrollWidth">2000</long> | |
| 239 | + <boolean id="scrollWidthTracking">0</boolean> | |
| 240 | + <boolean id="select_most_recent_buffer_on_buffer_close">0</boolean> | |
| 241 | + <boolean id="showEOL">0</boolean> | |
| 242 | + <boolean id="showIndentationGuides">1</boolean> | |
| 243 | + <boolean id="showLineNumbers">1</boolean> | |
| 244 | + <boolean id="showWhitespace">0</boolean> | |
| 245 | + <long id="tabWidth">8</long> | |
| 246 | + <string id="tidy_accessibility">0</string> | |
| 247 | + <string id="tidy_configpath"></string> | |
| 248 | + <string id="tidy_errorlevel">errors</string> | |
| 249 | + <boolean id="useSmartTabs">1</boolean> | |
| 250 | + <boolean id="useTabs">1</boolean> | |
| 251 | + <string id="userEnvironmentStartupOverride"></string> | |
| 252 | + <long id="ySlop">5</long> | |
| 253 | +</preference-set> | |
| 4 | 254 | </project> | ... | ... |
src/pw3270/uiparser/action.c
src/pw3270/uiparser/menu.c
| ... | ... | @@ -72,7 +72,9 @@ |
| 72 | 72 | |
| 73 | 73 | gtk_menu_shell_append((GtkMenuShell *) menu, widget); |
| 74 | 74 | |
| 75 | -// trace("%s: %s=%p",__FUNCTION__,gtk_widget_get_name(widget),widget); | |
| 75 | +#ifdef HAVE_GTKMAC | |
| 76 | + ui_check_for_sysmenu(widget,info,ui_get_attribute("sysmenu",names,values)); | |
| 77 | +#endif // HAVE_GTKMAC | |
| 76 | 78 | |
| 77 | 79 | return ui_insert_element(info, action, UI_ELEMENT_MENU, names, values, G_OBJECT(widget), error); |
| 78 | 80 | } | ... | ... |
src/pw3270/uiparser/menuitem.c
| ... | ... | @@ -32,12 +32,34 @@ |
| 32 | 32 | #include "private.h" |
| 33 | 33 | |
| 34 | 34 | #ifdef HAVE_GTKMAC |
| 35 | - #include <gtkmacintegration/gtk-mac-menu.h> | |
| 35 | + #include <gtkmacintegration/gtk-mac-menu.h> | |
| 36 | 36 | #endif // HAVE_GTKMAC |
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 40 | 40 | |
| 41 | +#ifdef HAVE_GTKMAC | |
| 42 | + void ui_check_for_sysmenu(GtkWidget *widget, struct parser *info, const gchar *name) | |
| 43 | + { | |
| 44 | + static const gchar *sysmenu[SYSMENU_ITEM_COUNT] = { "about", "preferences", "quit" }; | |
| 45 | + int f; | |
| 46 | + | |
| 47 | + if(!name) | |
| 48 | + return; | |
| 49 | + | |
| 50 | + for(f=0;f<SYSMENU_ITEM_COUNT;f++) | |
| 51 | + { | |
| 52 | + if(!g_strcasecmp(name,sysmenu[f])) | |
| 53 | + { | |
| 54 | + info->sysmenu[f] = widget; | |
| 55 | + return; | |
| 56 | + } | |
| 57 | + } | |
| 58 | + | |
| 59 | + } | |
| 60 | +#endif // HAVE_GTKMAC | |
| 61 | + | |
| 62 | + | |
| 41 | 63 | GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) |
| 42 | 64 | { |
| 43 | 65 | GtkWidget * widget = NULL; |
| ... | ... | @@ -113,10 +135,13 @@ |
| 113 | 135 | } |
| 114 | 136 | } |
| 115 | 137 | |
| 138 | +#ifdef HAVE_GTKMAC | |
| 139 | + ui_check_for_sysmenu(widget,info,ui_get_attribute("sysmenu",names,values)); | |
| 140 | +#endif // HAVE_GTKMAC | |
| 141 | + | |
| 116 | 142 | return G_OBJECT(widget); |
| 117 | 143 | } |
| 118 | 144 | |
| 119 | 145 | void ui_end_menuitem(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error) |
| 120 | 146 | { |
| 121 | 147 | } |
| 122 | - | ... | ... |
src/pw3270/uiparser/parser.c
| ... | ... | @@ -232,10 +232,30 @@ void parser_build(struct parser *p, GtkWidget *widget) |
| 232 | 232 | gtk_window_set_default(GTK_WINDOW(p->toplevel),widget); |
| 233 | 233 | |
| 234 | 234 | #ifdef HAVE_GTKMAC |
| 235 | - if(p->topmenu) | |
| 236 | 235 | { |
| 237 | - gtk_widget_set_visible(p->topmenu,FALSE); | |
| 238 | - gtk_mac_menu_set_menu_bar(GTK_MENU_SHELL(p->topmenu)); | |
| 236 | + if(p->topmenu) | |
| 237 | + { | |
| 238 | + gtk_widget_set_visible(p->topmenu,FALSE); | |
| 239 | + gtk_mac_menu_set_menu_bar(GTK_MENU_SHELL(p->topmenu)); | |
| 240 | + } | |
| 241 | + | |
| 242 | + if(p->sysmenu[SYSMENU_ITEM_QUIT]) | |
| 243 | + { | |
| 244 | + gtk_mac_menu_set_quit_menu_item (GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_QUIT])); | |
| 245 | + } | |
| 246 | + | |
| 247 | + if(p->sysmenu[SYSMENU_ITEM_ABOUT]) | |
| 248 | + { | |
| 249 | + GtkMacMenuGroup *group = gtk_mac_menu_add_app_menu_group(); | |
| 250 | + gtk_mac_menu_add_app_menu_item(group,GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_ABOUT]),NULL); | |
| 251 | + } | |
| 252 | + | |
| 253 | + if(p->sysmenu[SYSMENU_ITEM_PREFERENCES]) | |
| 254 | + { | |
| 255 | + GtkMacMenuGroup *group = gtk_mac_menu_add_app_menu_group(); | |
| 256 | + gtk_mac_menu_add_app_menu_item(group,GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_PREFERENCES]),NULL); | |
| 257 | + } | |
| 258 | + | |
| 239 | 259 | } |
| 240 | 260 | #endif // HAVE_GTKMAC |
| 241 | 261 | |
| ... | ... | @@ -364,4 +384,3 @@ const gchar * ui_get_dir_name(UI_ATTR_DIRECTION dir) |
| 364 | 384 | return ""; |
| 365 | 385 | return dirname[dir]; |
| 366 | 386 | } |
| 367 | - | ... | ... |
src/pw3270/uiparser/private.h
| ... | ... | @@ -53,6 +53,18 @@ |
| 53 | 53 | #define UI_ELEMENT_MENUITEM UI_ELEMENT_COUNT+4 |
| 54 | 54 | #define UI_ELEMENT_SCROLL UI_ELEMENT_COUNT+5 |
| 55 | 55 | |
| 56 | +#ifdef HAVE_GTKMAC | |
| 57 | + enum SYSMENU_ITEM | |
| 58 | + { | |
| 59 | + SYSMENU_ITEM_ABOUT, | |
| 60 | + SYSMENU_ITEM_PREFERENCES, | |
| 61 | + SYSMENU_ITEM_QUIT, | |
| 62 | + | |
| 63 | + SYSMENU_ITEM_COUNT | |
| 64 | + | |
| 65 | + }; | |
| 66 | +#endif // HAVE_GTKMAC | |
| 67 | + | |
| 56 | 68 | struct parser |
| 57 | 69 | { |
| 58 | 70 | GtkWidget * toplevel; |
| ... | ... | @@ -69,6 +81,9 @@ |
| 69 | 81 | GHashTable * actions; /**< List of actions */ |
| 70 | 82 | GHashTable * element_list[UI_ELEMENT_COUNT]; |
| 71 | 83 | const UI_WIDGET_SETUP * setup; |
| 84 | +#ifdef HAVE_GTKMAC | |
| 85 | + GtkWidget * sysmenu[SYSMENU_ITEM_COUNT]; | |
| 86 | +#endif // HAVE_GTKMAC | |
| 72 | 87 | }; |
| 73 | 88 | |
| 74 | 89 | int ui_parse_file(struct parser *info, const gchar *filename); |
| ... | ... | @@ -77,6 +92,10 @@ |
| 77 | 92 | GObject * ui_get_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GError **error); |
| 78 | 93 | GObject * ui_insert_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GObject *widget, GError **error); |
| 79 | 94 | |
| 95 | +#ifdef HAVE_GTKMAC | |
| 96 | + void ui_check_for_sysmenu(GtkWidget *widget, struct parser *info, const gchar *name); | |
| 97 | +#endif // HAVE_GTKMAC | |
| 98 | + | |
| 80 | 99 | GObject * ui_create_menubar(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); |
| 81 | 100 | GObject * ui_create_menu(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); |
| 82 | 101 | GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); | ... | ... |
ui/00default.xml
| ... | ... | @@ -54,7 +54,7 @@ |
| 54 | 54 | <menuitem action='download' key='<alt>d' label='Receive file' /> |
| 55 | 55 | <menuitem action='upload' key='<alt>u' label='Send file' /> |
| 56 | 56 | </menu> |
| 57 | - <menuitem action='Quit' key='<ctrl>q' icon="quit" /> | |
| 57 | + <menuitem action='Quit' key='<ctrl>q' icon="quit" sysmenu="quit"/> | |
| 58 | 58 | </menu> |
| 59 | 59 | |
| 60 | 60 | <menu name='EditMenu' label='_Edit' > |
| ... | ... | @@ -104,7 +104,7 @@ |
| 104 | 104 | <menuitem action='disconnect' icon='disconnect' group='online' label='_Disconnect' /> |
| 105 | 105 | </menu> |
| 106 | 106 | |
| 107 | - <menu name='SettingsMenu' label='Settings' sysmenu='yes' > | |
| 107 | + <menu name='SettingsMenu' label='Settings' sysmenu='preferences' > | |
| 108 | 108 | <menuitem action='editcolors' icon='select-color' label='Colors' /> |
| 109 | 109 | |
| 110 | 110 | <!--- Special action - The fontselect menu will be populated with all available monospaced fonts ---> |
| ... | ... | @@ -138,7 +138,7 @@ |
| 138 | 138 | </menu> |
| 139 | 139 | |
| 140 | 140 | <menu name='HelpMenu' label='Help' > |
| 141 | - <menuitem action='about' icon='about' sysmenu='yes' /> | |
| 141 | + <menuitem action='about' icon='about' sysmenu='about' /> | |
| 142 | 142 | </menu> |
| 143 | 143 | |
| 144 | 144 | </menubar> |
| ... | ... | @@ -260,4 +260,3 @@ |
| 260 | 260 | <accelerator name='KPadd' action='kpadd' key='KP_Add' group='online' /> |
| 261 | 261 | |
| 262 | 262 | </ui> |
| 263 | - | ... | ... |