index 8a6aba315081026cbd59f4026be62552c68dc2ae..1c362ed16f2f56986b94eae28f311602d5d4231f 100644 (file)
#include "gdl-dock-item.h"
#include "libgdlmarshal.h"
#include "libgdltypebuiltins.h"
+#ifdef WIN32
+#include "gdl-win32.h"
+#endif
/* ----- Private prototypes ----- */
PROP_0,
PROP_DEFAULT_TITLE,
PROP_LOCKED,
- PROP_SWITCHER_STYLE
+ PROP_SWITCHER_STYLE,
+ PROP_EXPANSION_DIRECTION
};
enum {
GHashTable *unlocked_items;
GdlSwitcherStyle switcher_style;
+
+ GdlDockExpansionDirection expansion_direction;
};
#define COMPUTE_LOCKED(master) \
GDL_SWITCHER_STYLE_BOTH,
G_PARAM_READWRITE));
+ g_object_class_install_property (
+ g_object_class, PROP_EXPANSION_DIRECTION,
+ g_param_spec_enum ("expand-direction", _("Expand direction"),
+ _("Allow the master's dock items to expand their container "
+ "dock objects in the given direction"),
+ GDL_TYPE_EXPANSION_DIRECTION,
+ GDL_DOCK_EXPANSION_DIRECTION_NONE,
+ G_PARAM_READWRITE));
+
master_signals [LAYOUT_CHANGED] =
g_signal_new ("layout-changed",
G_TYPE_FROM_CLASS (klass),
master->_priv = g_new0 (GdlDockMasterPrivate, 1);
master->_priv->number = 1;
master->_priv->switcher_style = GDL_SWITCHER_STYLE_BOTH;
+ master->_priv->expansion_direction = GDL_DOCK_EXPANSION_DIRECTION_NONE;
master->_priv->locked_items = g_hash_table_new (g_direct_hash, g_direct_equal);
master->_priv->unlocked_items = g_hash_table_new (g_direct_hash, g_direct_equal);
}
case PROP_SWITCHER_STYLE:
gdl_dock_master_set_switcher_style (master, g_value_get_enum (value));
break;
+ case PROP_EXPANSION_DIRECTION:
+ master->_priv->expansion_direction = g_value_get_enum (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_SWITCHER_STYLE:
g_value_set_enum (value, master->_priv->switcher_style);
break;
+ case PROP_EXPANSION_DIRECTION:
+ g_value_set_enum (value, master->_priv->expansion_direction);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
window, &values, GDK_GC_FUNCTION | GDK_GC_SUBWINDOW);
};
+#ifdef WIN32
+ GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH;
+ if (is_os_vista())
+ {
+ // On Vista the dash-line is increadibly slow to draw, it takes several minutes to draw the tracking lines
+ // With GDK_LINE_SOLID it is parts of a second
+ // No performance issue on WinXP
+ lineStyle = GDK_LINE_SOLID;
+ }
+#else
+ GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH;
+#endif
gdk_gc_set_line_attributes (master->_priv->root_xor_gc, 1,
- GDK_LINE_ON_OFF_DASH,
+ lineStyle,
GDK_CAP_NOT_LAST,
GDK_JOIN_BEVEL);