]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stockitem.h
implementation of HotKey, see #12354
[wxWidgets.git] / include / wx / stockitem.h
index 0b157887dc60af912dcc560413ac5a975e7036e6..b13f84dc127079703eeb263fa58deee6bb64bb26 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/stockitem.h
-// Purpose:     wxStockItemID enum
+// Purpose:     stock items helpers (privateh header)
 // Author:      Vaclav Slavik
 // Modified by:
 // Created:     2004-08-15
 #ifndef _WX_STOCKITEM_H_
 #define _WX_STOCKITEM_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma interface "stockitem.h"
-#endif
-
 #include "wx/defs.h"
+#include "wx/chartype.h"
 #include "wx/string.h"
+#include "wx/accel.h"
 
 // ----------------------------------------------------------------------------
-// Stock item IDs for use with wxButton, wxMenu and wxToolBar:
+// Helper functions for stock items handling:
 // ----------------------------------------------------------------------------
 
-enum wxStockItemID
+// Returns true if the ID is in the list of recognized stock actions
+WXDLLIMPEXP_CORE bool wxIsStockID(wxWindowID id);
+
+// Returns true of the label is empty or label of a stock button with
+// given ID
+WXDLLIMPEXP_CORE bool wxIsStockLabel(wxWindowID id, const wxString& label);
+
+enum wxStockLabelQueryFlag
 {
-    wxSTOCK_NONE = 0,
-    wxSTOCK_ADD,
-    wxSTOCK_APPLY,
-    wxSTOCK_BOLD,
-    wxSTOCK_CANCEL,
-    wxSTOCK_CLEAR,
-    wxSTOCK_CLOSE,
-    wxSTOCK_COPY,
-    wxSTOCK_CUT,
-    wxSTOCK_DELETE,
-    wxSTOCK_FIND,
-    wxSTOCK_FIND_AND_REPLACE,
-    wxSTOCK_GO_BACK,
-    wxSTOCK_GO_DOWN,
-    wxSTOCK_GO_FORWARD,
-    wxSTOCK_GO_UP,
-    wxSTOCK_HELP,
-    wxSTOCK_HOME,
-    wxSTOCK_INDENT,
-    wxSTOCK_INDEX,
-    wxSTOCK_ITALIC,
-    wxSTOCK_JUSTIFY_CENTER,
-    wxSTOCK_JUSTIFY_FILL,
-    wxSTOCK_JUSTIFY_LEFT,
-    wxSTOCK_JUSTIFY_RIGHT,
-    wxSTOCK_NEW,
-    wxSTOCK_NO,
-    wxSTOCK_OK,
-    wxSTOCK_OPEN,
-    wxSTOCK_PASTE,
-    wxSTOCK_PREFERENCES,
-    wxSTOCK_PRINT,
-    wxSTOCK_PRINT_PREVIEW,
-    wxSTOCK_PROPERTIES,
-    wxSTOCK_QUIT,
-    wxSTOCK_REDO,
-    wxSTOCK_REFRESH,
-    wxSTOCK_REMOVE,
-    wxSTOCK_REVERT_TO_SAVED,
-    wxSTOCK_SAVE,
-    wxSTOCK_SAVE_AS,
-    wxSTOCK_STOP,
-    wxSTOCK_UNDELETE,
-    wxSTOCK_UNDERLINE,
-    wxSTOCK_UNDO,
-    wxSTOCK_UNINDENT,
-    wxSTOCK_YES,
-    wxSTOCK_ZOOM_100,
-    wxSTOCK_ZOOM_FIT,
-    wxSTOCK_ZOOM_IN,
-    wxSTOCK_ZOOM_OUT
-    // NB: when you add new item here, add it to stockitem.cpp and
-    //     documentation as well
-};
+    wxSTOCK_NOFLAGS = 0,
 
-// ----------------------------------------------------------------------------
-// Helper functions:
-// ----------------------------------------------------------------------------
+    wxSTOCK_WITH_MNEMONIC = 1,
+    wxSTOCK_WITH_ACCELERATOR = 2,
+
+    // by default, stock items text is returned with ellipsis, if appropriate,
+    // this flag allows to avoid having it
+    wxSTOCK_WITHOUT_ELLIPSIS = 4,
+
+    // return label for button, not menu item: buttons should always use
+    // mnemonics and never use ellipsis
+    wxSTOCK_FOR_BUTTON = wxSTOCK_WITHOUT_ELLIPSIS | wxSTOCK_WITH_MNEMONIC
+};
 
 // Returns label that should be used for given stock UI element (e.g. "&OK"
-// for wxSTOCK_OK):
-wxString wxGetStockItemLabel(wxStockItemID item);
+// for wxSTOCK_OK); if wxSTOCK_WITH_MNEMONIC is given, the & character
+// is included; if wxSTOCK_WITH_ACCELERATOR is given, the stock accelerator
+// for given ID is concatenated to the label using \t as separator
+WXDLLIMPEXP_CORE wxString wxGetStockLabel(wxWindowID id,
+                                     long flags = wxSTOCK_WITH_MNEMONIC);
+
+#if wxUSE_ACCEL
+
+    // Returns the accelerator that should be used for given stock UI element
+    // (e.g. "Ctrl+x" for wxSTOCK_EXIT)
+    WXDLLIMPEXP_CORE wxAcceleratorEntry wxGetStockAccelerator(wxWindowID id);
+
+#endif
+
+// wxStockHelpStringClient conceptually works like wxArtClient: it gives a hint to
+// wxGetStockHelpString() about the context where the help string is to be used
+enum wxStockHelpStringClient
+{
+    wxSTOCK_MENU        // help string to use for menu items
+};
+
+// Returns an help string for the given stock UI element and for the given "context".
+WXDLLIMPEXP_CORE wxString wxGetStockHelpString(wxWindowID id,
+                                          wxStockHelpStringClient client = wxSTOCK_MENU);
+
 
 #ifdef __WXGTK20__
+
 // Translates stock ID to GTK+'s stock item string indentifier:
-const char *wxStockItemToGTK(wxStockItemID item);
+WXDLLIMPEXP_CORE const char *wxGetStockGtkID(wxWindowID id);
+
 #endif
 
 #endif // _WX_STOCKITEM_H_