aboutsummaryrefslogtreecommitdiff
path: root/module/gtk3privates.h
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2014-12-27 16:15:48 +0100
committerJavier <dev.git@javispedro.com>2014-12-27 16:15:48 +0100
commitffc74b3a945b603ba9a0c1936f71b47e63ba6672 (patch)
tree0a88a012cc846a2e9f2aac1bc4cba60c6707f3cf /module/gtk3privates.h
parent1df08e2e2d45e1a0e5514c0f4c23613045f99475 (diff)
downloadtopmenu-gtk-ffc74b3a945b603ba9a0c1936f71b47e63ba6672.tar.gz
topmenu-gtk-ffc74b3a945b603ba9a0c1936f71b47e63ba6672.zip
move gtk3 privates to a separate header
Diffstat (limited to 'module/gtk3privates.h')
-rw-r--r--module/gtk3privates.h193
1 files changed, 193 insertions, 0 deletions
diff --git a/module/gtk3privates.h b/module/gtk3privates.h
new file mode 100644
index 0000000..bce2b61
--- /dev/null
+++ b/module/gtk3privates.h
@@ -0,0 +1,193 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _GTK3PRIVATES_H_
+#define _GTK3PRIVATES_H_
+
+#include "../global.h"
+
+#if GTK_MAJOR_VERSION == 3
+#include <gtk/gtk.h>
+
+/* What could possibly go wrong if I just pull all those privates here? */
+typedef enum
+{
+ GTK_DIRECTION_LEFT,
+ GTK_DIRECTION_RIGHT
+} GtkSubmenuDirection;
+
+typedef enum
+{
+ GTK_TOP_BOTTOM,
+ GTK_LEFT_RIGHT
+} GtkSubmenuPlacement;
+
+typedef struct _GtkMenuTracker GtkMenuTracker;
+typedef struct _GtkMnemnonicHash GtkMnemonicHash;
+typedef struct _GtkKeyHash GtkKeyHash;
+typedef struct _GtkActionHelper GtkActionHelper;
+
+struct _GtkMenuPrivate
+{
+ GtkWidget *parent_menu_item;
+ GtkWidget *old_active_menu_item;
+
+ GtkAccelGroup *accel_group;
+ gchar *accel_path;
+
+ GtkMenuPositionFunc position_func;
+ gpointer position_func_data;
+ GDestroyNotify position_func_data_destroy;
+ gint position_x;
+ gint position_y;
+
+ guint toggle_size;
+ guint accel_size;
+
+ /* Do _not_ touch these widgets directly. We hide the reference
+ * count from the toplevel to the menu, so it must be restored
+ * before operating on these widgets
+ */
+ GtkWidget *toplevel;
+
+ GtkWidget *tearoff_window;
+ GtkWidget *tearoff_hbox;
+ GtkWidget *tearoff_scrollbar;
+ GtkAdjustment *tearoff_adjustment;
+
+ GdkWindow *view_window;
+ GdkWindow *bin_window;
+
+ gint scroll_offset;
+ gint saved_scroll_offset;
+ gint scroll_step;
+
+ guint scroll_timeout;
+
+ guint needs_destruction_ref : 1;
+ guint torn_off : 1;
+ /* The tearoff is active when it is torn off and the not-torn-off
+ * menu is not popped up.
+ */
+ guint tearoff_active : 1;
+ guint scroll_fast : 1;
+
+ guint upper_arrow_visible : 1;
+ guint lower_arrow_visible : 1;
+ guint upper_arrow_prelight : 1;
+ guint lower_arrow_prelight : 1;
+
+ guint have_position : 1;
+ guint have_layout : 1;
+ guint seen_item_enter : 1;
+ guint ignore_button_release : 1;
+ guint no_toggle_size : 1;
+ guint drag_already_pressed : 1;
+ guint drag_scroll_started : 1;
+
+ /* info used for the table */
+ guint *heights;
+ gint heights_length;
+ gint requested_height;
+
+ gboolean initially_pushed_in;
+ gint monitor_num;
+
+ /* Cached layout information */
+ gint n_rows;
+ gint n_columns;
+
+ gchar *title;
+
+ /* Arrow states */
+ GtkStateFlags lower_arrow_state;
+ GtkStateFlags upper_arrow_state;
+
+ /* navigation region */
+ gint navigation_x;
+ gint navigation_y;
+ gint navigation_width;
+ gint navigation_height;
+
+ guint navigation_timeout;
+
+ gdouble drag_start_y;
+ gint initial_drag_offset;
+};
+
+struct _GtkMenuShellPrivate
+{
+ GList *children;
+
+ GtkWidget *active_menu_item; /* This is not an "active" menu item
+ * (there is no such thing) but rather,
+ * the selected menu item in that MenuShell,
+ * if there is one.
+ */
+ GtkWidget *parent_menu_shell;
+ GtkMenuTracker *tracker; // if bound to a GMenuModel
+
+ guint button;
+ guint32 activate_time;
+
+ guint active : 1;
+ guint have_grab : 1;
+ guint have_xgrab : 1;
+ guint ignore_enter : 1;
+ guint keyboard_mode : 1;
+
+ guint take_focus : 1;
+ guint activated_submenu : 1;
+ guint in_unselectable_item : 1; /* This flag is a crutch to keep
+ * mnemonics in the same menu if
+ * the user moves the mouse over
+ * an unselectable menuitem.
+ */
+ GtkMnemonicHash *mnemonic_hash;
+ GtkKeyHash *key_hash;
+
+ GdkDevice *grab_pointer;
+};
+
+struct _GtkMenuItemPrivate
+{
+ GtkWidget *submenu;
+ GdkWindow *event_window;
+
+ guint16 toggle_size;
+ guint16 accelerator_width;
+
+ guint timer;
+
+ gchar *accel_path;
+
+ GtkAction *action;
+ GtkActionHelper *action_helper;
+
+ guint show_submenu_indicator : 1;
+ guint submenu_placement : 1;
+ guint submenu_direction : 1;
+ guint right_justify : 1;
+ guint timer_from_keypress : 1;
+ guint from_menubar : 1;
+ guint use_action_appearance : 1;
+ guint reserve_indicator : 1;
+};
+
+#endif /* GTK_MAJOR_VERSION == 3 */
+
+#endif /* _GTK3PRIVATES_H_ */