summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@cs.ox.ac.uk>2012-12-11 17:50:59 +0000
committerAlex Merry <alex.merry@cs.ox.ac.uk>2012-12-11 17:50:59 +0000
commitf0005d52707e1e8bfb19ba44782f169e59aa815d (patch)
tree6e165b4d72c6d992685997529aa242fb6838dc07
parent81763ee4781833a78f06b0a799713e3412189256 (diff)
Remove use of GtkFrame in tool windows
It's unnecessary and a waste of space. Use bolded titles instead.
-rw-r--r--tikzit/src/gtk/BoundingBoxTool.m2
-rw-r--r--tikzit/src/gtk/CreateEdgeTool.m2
-rw-r--r--tikzit/src/gtk/CreateNodeTool.m2
-rw-r--r--tikzit/src/gtk/HandTool.m2
-rw-r--r--tikzit/src/gtk/PropertiesWindow.h6
-rw-r--r--tikzit/src/gtk/PropertiesWindow.m107
-rw-r--r--tikzit/src/gtk/SelectTool.m2
-rw-r--r--tikzit/src/gtk/ToolBox.h2
-rw-r--r--tikzit/src/gtk/ToolBox.m37
-rw-r--r--tikzit/src/gtk/tzstockitems.m10
10 files changed, 114 insertions, 58 deletions
diff --git a/tikzit/src/gtk/BoundingBoxTool.m b/tikzit/src/gtk/BoundingBoxTool.m
index 76c4f10..483705e 100644
--- a/tikzit/src/gtk/BoundingBoxTool.m
+++ b/tikzit/src/gtk/BoundingBoxTool.m
@@ -37,7 +37,7 @@ float tbHandleLeft(NSRect bbox) {
@end
@implementation BoundingBoxTool
-- (NSString*) name { return @"Bounding Box Tool"; }
+- (NSString*) name { return @"Bounding Box"; }
- (const gchar*) stockId { return TIKZIT_STOCK_BOUNDING_BOX; }
- (NSString*) helpText { return @"Set the bounding box"; }
- (NSString*) shortcut { return @"b"; }
diff --git a/tikzit/src/gtk/CreateEdgeTool.m b/tikzit/src/gtk/CreateEdgeTool.m
index 5748494..f420b80 100644
--- a/tikzit/src/gtk/CreateEdgeTool.m
+++ b/tikzit/src/gtk/CreateEdgeTool.m
@@ -24,7 +24,7 @@
#import "tzstockitems.h"
@implementation CreateEdgeTool
-- (NSString*) name { return @"Create Edge Tool"; }
+- (NSString*) name { return @"Create Edge"; }
- (const gchar*) stockId { return TIKZIT_STOCK_CREATE_EDGE; }
- (NSString*) helpText { return @"Create new edges"; }
- (NSString*) shortcut { return @"e"; }
diff --git a/tikzit/src/gtk/CreateNodeTool.m b/tikzit/src/gtk/CreateNodeTool.m
index a78776a..8f4a0c1 100644
--- a/tikzit/src/gtk/CreateNodeTool.m
+++ b/tikzit/src/gtk/CreateNodeTool.m
@@ -24,7 +24,7 @@
#import "tzstockitems.h"
@implementation CreateNodeTool
-- (NSString*) name { return @"Create Node Tool"; }
+- (NSString*) name { return @"Create Node"; }
- (const gchar*) stockId { return TIKZIT_STOCK_CREATE_NODE; }
- (NSString*) helpText { return @"Create new nodes"; }
- (NSString*) shortcut { return @"n"; }
diff --git a/tikzit/src/gtk/HandTool.m b/tikzit/src/gtk/HandTool.m
index 3f8906c..c3a0fb4 100644
--- a/tikzit/src/gtk/HandTool.m
+++ b/tikzit/src/gtk/HandTool.m
@@ -22,7 +22,7 @@
#import "tzstockitems.h"
@implementation HandTool
-- (NSString*) name { return @"Drag Tool"; }
+- (NSString*) name { return @"Drag"; }
- (const gchar*) stockId { return TIKZIT_STOCK_DRAG; }
- (NSString*) helpText { return @"Move the diagram to view different parts"; }
- (NSString*) shortcut { return @"m"; }
diff --git a/tikzit/src/gtk/PropertiesWindow.h b/tikzit/src/gtk/PropertiesWindow.h
index 3f4cce4..cc4316f 100644
--- a/tikzit/src/gtk/PropertiesWindow.h
+++ b/tikzit/src/gtk/PropertiesWindow.h
@@ -43,9 +43,9 @@
GtkWidget *window;
GtkWidget *propertiesPane;
- GtkWidget *graphPropsBin;
- GtkWidget *nodePropsBin;
- GtkWidget *edgePropsBin;
+ GtkWidget *graphPropsWidget;
+ GtkWidget *nodePropsWidget;
+ GtkWidget *edgePropsWidget;
GtkEntry *nodeLabelEntry;
GtkToggleButton *edgeNodeToggle;
diff --git a/tikzit/src/gtk/PropertiesWindow.m b/tikzit/src/gtk/PropertiesWindow.m
index 64948f3..acf18b2 100644
--- a/tikzit/src/gtk/PropertiesWindow.m
+++ b/tikzit/src/gtk/PropertiesWindow.m
@@ -27,6 +27,7 @@
// {{{ GTK+ helpers
static GtkWidget *createLabelledEntry (const gchar *labelText, GtkEntry **entry);
static GtkWidget *createPropsPaneWithLabelEntry (PropertyListEditor *props, GtkEntry **labelEntry);
+static GtkWidget *createBoldLabel (const gchar *text);
// }}}
// {{{ GTK+ callbacks
static gboolean props_window_delete_event_cb (GtkWidget *widget, GdkEvent *event, PropertiesWindow *window);
@@ -117,63 +118,87 @@ static void edge_node_toggled_cb (GtkToggleButton *widget, PropertiesWindow *pan
/*
* Graph properties
*/
- gtk_widget_show ([graphProps widget]);
-
- GtkWidget *graphPropsWidget = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (graphPropsWidget), 6, 6, 6, 6);
- gtk_container_add (GTK_CONTAINER (graphPropsWidget), [graphProps widget]);
+ graphPropsWidget = gtk_vbox_new (FALSE, 6);
+ g_object_ref_sink (graphPropsWidget);
+ gtk_container_set_border_width (GTK_CONTAINER (graphPropsWidget), 6);
gtk_widget_show (graphPropsWidget);
- graphPropsBin = gtk_frame_new ("Graph properties");
- g_object_ref_sink (graphPropsBin);
- gtk_container_add (GTK_CONTAINER (graphPropsBin), graphPropsWidget);
- gtk_widget_show (graphPropsBin);
+ GtkWidget *label = createBoldLabel ("Graph properties");
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX (graphPropsWidget),
+ label,
+ FALSE, FALSE, 0);
+
+ gtk_widget_show ([graphProps widget]);
+ gtk_box_pack_start (GTK_BOX (graphPropsWidget),
+ [graphProps widget],
+ TRUE, TRUE, 0);
+ gtk_widget_show (graphPropsWidget);
- gtk_container_add (GTK_CONTAINER (window), graphPropsBin);
+ gtk_container_add (GTK_CONTAINER (window), graphPropsWidget);
/*
* Node properties
*/
- GtkWidget *nodePropsWidget = createPropsPaneWithLabelEntry(nodeProps, &nodeLabelEntry);
+ nodePropsWidget = gtk_vbox_new (FALSE, 6);
+ g_object_ref_sink (nodePropsWidget);
gtk_container_set_border_width (GTK_CONTAINER (nodePropsWidget), 6);
- g_object_ref_sink (nodeLabelEntry);
gtk_widget_show (nodePropsWidget);
- nodePropsBin = gtk_frame_new ("Node properties");
- g_object_ref_sink (nodePropsBin);
- gtk_container_add (GTK_CONTAINER (nodePropsBin), nodePropsWidget);
- gtk_widget_show (nodePropsBin);
+ label = createBoldLabel ("Node properties");
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX (nodePropsWidget),
+ label,
+ FALSE, FALSE, 0);
+
+ GtkWidget *labelWidget = createLabelledEntry ("Label", &nodeLabelEntry);
+ gtk_widget_show (labelWidget);
+ gtk_box_pack_start (GTK_BOX (nodePropsWidget),
+ labelWidget,
+ FALSE, FALSE, 0);
+
+ gtk_widget_show ([nodeProps widget]);
+ gtk_box_pack_start (GTK_BOX (nodePropsWidget),
+ [nodeProps widget],
+ TRUE, TRUE, 0);
g_signal_connect (G_OBJECT (nodeLabelEntry),
"changed",
G_CALLBACK (node_label_changed_cb),
self);
-
/*
* Edge properties
*/
- gtk_widget_show ([edgeProps widget]);
+ edgePropsWidget = gtk_vbox_new (FALSE, 6);
+ g_object_ref_sink (edgePropsWidget);
+ gtk_container_set_border_width (GTK_CONTAINER (edgePropsWidget), 6);
+ gtk_widget_show (edgePropsWidget);
- GtkBox *edgePropsBox = GTK_BOX (gtk_vbox_new (FALSE, 6));
- gtk_container_set_border_width (GTK_CONTAINER (edgePropsBox), 6);
- gtk_widget_show (GTK_WIDGET (edgePropsBox));
- gtk_box_pack_start (edgePropsBox, [edgeProps widget], TRUE, TRUE, 0);
+ label = createBoldLabel ("Edge properties");
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX (edgePropsWidget),
+ label,
+ FALSE, FALSE, 0);
- edgePropsBin = gtk_frame_new ("Edge properties");
- g_object_ref_sink (edgePropsBin);
- gtk_container_add (GTK_CONTAINER (edgePropsBin), GTK_WIDGET (edgePropsBox));
- gtk_widget_show (edgePropsBin);
+ gtk_widget_show ([edgeProps widget]);
+ gtk_box_pack_start (GTK_BOX (edgePropsWidget),
+ [edgeProps widget],
+ TRUE, TRUE, 0);
GtkWidget *split = gtk_hseparator_new ();
- gtk_box_pack_start (edgePropsBox, split, FALSE, FALSE, 0);
gtk_widget_show (split);
+ gtk_box_pack_start (GTK_BOX (edgePropsWidget),
+ split,
+ FALSE, FALSE, 0);
edgeNodeToggle = GTK_TOGGLE_BUTTON (gtk_check_button_new_with_label ("Child node"));
g_object_ref_sink (edgeNodeToggle);
gtk_widget_show (GTK_WIDGET (edgeNodeToggle));
- gtk_box_pack_start (edgePropsBox, GTK_WIDGET (edgeNodeToggle), FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (edgePropsWidget),
+ GTK_WIDGET (edgeNodeToggle),
+ FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (GTK_WIDGET (edgeNodeToggle)),
"toggled",
G_CALLBACK (edge_node_toggled_cb),
@@ -182,7 +207,9 @@ static void edge_node_toggled_cb (GtkToggleButton *widget, PropertiesWindow *pan
edgeNodePropsWidget = createPropsPaneWithLabelEntry(edgeNodeProps, &edgeNodeLabelEntry);
g_object_ref_sink (edgeNodePropsWidget);
g_object_ref_sink (edgeNodeLabelEntry);
- gtk_box_pack_start (edgePropsBox, edgeNodePropsWidget, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (edgePropsWidget),
+ edgeNodePropsWidget,
+ TRUE, TRUE, 0);
g_signal_connect (G_OBJECT (edgeNodeLabelEntry),
"changed",
G_CALLBACK (edge_node_label_changed_cb),
@@ -197,9 +224,9 @@ static void edge_node_toggled_cb (GtkToggleButton *widget, PropertiesWindow *pan
[[NSNotificationCenter defaultCenter] removeObserver:self];
[document release];
- g_object_unref (graphPropsBin);
- g_object_unref (nodePropsBin);
- g_object_unref (edgePropsBin);
+ g_object_unref (graphPropsWidget);
+ g_object_unref (nodePropsWidget);
+ g_object_unref (edgePropsWidget);
g_object_unref (nodeLabelEntry);
g_object_unref (edgeNodeToggle);
g_object_unref (edgeNodePropsWidget);
@@ -372,7 +399,7 @@ static void edge_node_toggled_cb (GtkToggleButton *widget, PropertiesWindow *pan
[nodePropDelegate setNode:n];
[nodeProps setData:[n data]];
gtk_entry_set_text (nodeLabelEntry, [[n label] UTF8String]);
- [self _setDisplayedWidget:nodePropsBin];
+ [self _setDisplayedWidget:nodePropsWidget];
editGraphProps = NO;
} else {
[nodePropDelegate setNode:nil];
@@ -397,7 +424,7 @@ static void edge_node_toggled_cb (GtkToggleButton *widget, PropertiesWindow *pan
[edgeNodeProps setData:nil];
gtk_widget_set_sensitive (edgeNodePropsWidget, FALSE);
}
- [self _setDisplayedWidget:edgePropsBin];
+ [self _setDisplayedWidget:edgePropsWidget];
editGraphProps = NO;
} else {
[edgePropDelegate setEdge:nil];
@@ -408,7 +435,7 @@ static void edge_node_toggled_cb (GtkToggleButton *widget, PropertiesWindow *pan
}
if (editGraphProps) {
- [self _setDisplayedWidget:graphPropsBin];
+ [self _setDisplayedWidget:graphPropsWidget];
}
blockUpdates = NO;
@@ -537,6 +564,16 @@ static GtkWidget *createPropsPaneWithLabelEntry (PropertyListEditor *props, GtkE
return GTK_WIDGET (box);
}
+static GtkWidget *createBoldLabel (const gchar *text) {
+ GtkWidget *label = gtk_label_new (text);
+ PangoAttrList *attrs = pango_attr_list_new ();
+ pango_attr_list_insert (attrs,
+ pango_attr_weight_new (PANGO_WEIGHT_SEMIBOLD));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs);
+ pango_attr_list_unref (attrs);
+ return label;
+}
+
// }}}
// {{{ GTK+ callbacks
diff --git a/tikzit/src/gtk/SelectTool.m b/tikzit/src/gtk/SelectTool.m
index cba69bc..6f3ceeb 100644
--- a/tikzit/src/gtk/SelectTool.m
+++ b/tikzit/src/gtk/SelectTool.m
@@ -43,7 +43,7 @@ static void drag_select_mode_cb (GtkToggleButton *button, SelectTool *tool);
@end
@implementation SelectTool
-- (NSString*) name { return @"Select Tool"; }
+- (NSString*) name { return @"Select"; }
- (const gchar*) stockId { return TIKZIT_STOCK_SELECT; }
- (NSString*) helpText { return @"Select, move and edit nodes and edges"; }
- (NSString*) shortcut { return @"s"; }
diff --git a/tikzit/src/gtk/ToolBox.h b/tikzit/src/gtk/ToolBox.h
index 881dd24..bf0dc35 100644
--- a/tikzit/src/gtk/ToolBox.h
+++ b/tikzit/src/gtk/ToolBox.h
@@ -24,7 +24,7 @@
@interface ToolBox : NSObject {
GtkWidget *window;
GtkToolItemGroup *toolGroup;
- GtkWidget *frame;
+ GtkWidget *titleLabel;
GtkWidget *configWidgetContainer;
GtkWidget *configWidget;
}
diff --git a/tikzit/src/gtk/ToolBox.m b/tikzit/src/gtk/ToolBox.m
index 0a963fd..e5411c1 100644
--- a/tikzit/src/gtk/ToolBox.m
+++ b/tikzit/src/gtk/ToolBox.m
@@ -95,20 +95,38 @@ static void unretain (gpointer data);
self);
}
- frame = gtk_frame_new ("");
- g_object_ref_sink (frame);
- gtk_widget_show (frame);
+ GtkWidget *sep = gtk_hseparator_new ();
+ gtk_widget_show (sep);
gtk_box_pack_start (GTK_BOX (mainLayout),
- frame,
- TRUE,
- TRUE,
+ sep,
+ FALSE,
+ FALSE,
+ 0);
+
+ titleLabel = gtk_label_new ("");
+ g_object_ref_sink (titleLabel);
+ gtk_widget_show (titleLabel);
+
+ PangoAttrList *attrs = pango_attr_list_new ();
+ pango_attr_list_insert (attrs,
+ pango_attr_weight_new (PANGO_WEIGHT_SEMIBOLD));
+ gtk_label_set_attributes (GTK_LABEL (titleLabel), attrs);
+ pango_attr_list_unref (attrs);
+
+ gtk_box_pack_start (GTK_BOX (mainLayout),
+ titleLabel,
+ FALSE,
+ FALSE,
0);
configWidgetContainer = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
g_object_ref_sink (configWidgetContainer);
gtk_widget_show (configWidgetContainer);
- gtk_container_add (GTK_CONTAINER (frame),
- configWidgetContainer);
+ gtk_box_pack_start (GTK_BOX (mainLayout),
+ configWidgetContainer,
+ TRUE,
+ TRUE,
+ 0);
gtk_alignment_set_padding (GTK_ALIGNMENT (configWidgetContainer),
5, 5, 5, 5);
@@ -121,6 +139,7 @@ static void unretain (gpointer data);
- (void) dealloc {
if (window) {
g_object_unref (G_OBJECT (toolGroup));
+ g_object_unref (G_OBJECT (titleLabel));
g_object_unref (G_OBJECT (configWidgetContainer));
if (configWidget)
g_object_unref (G_OBJECT (configWidget));
@@ -169,7 +188,7 @@ static void unretain (gpointer data);
break;
}
}
- gtk_frame_set_label (GTK_FRAME (frame),
+ gtk_label_set_label (GTK_LABEL (titleLabel),
[[tool name] UTF8String]);
[self _setToolWidget:[tool configurationWidget]];
}
diff --git a/tikzit/src/gtk/tzstockitems.m b/tikzit/src/gtk/tzstockitems.m
index 6425d5f..5eba912 100644
--- a/tikzit/src/gtk/tzstockitems.m
+++ b/tikzit/src/gtk/tzstockitems.m
@@ -30,11 +30,11 @@ static GtkStockItem stock_items[] = {
// GdkModifierType modifier;
// guint keyval;
// gchar *translation_domain;
- { TIKZIT_STOCK_SELECT, "Select Tool", 0, 0, NULL },
- { TIKZIT_STOCK_CREATE_NODE, "Create Node Tool", 0, 0, NULL },
- { TIKZIT_STOCK_CREATE_EDGE, "Create Edge Tool", 0, 0, NULL },
- { TIKZIT_STOCK_BOUNDING_BOX, "Bounding Box Tool", 0, 0, NULL },
- { TIKZIT_STOCK_DRAG, "Drag Tool", 0, 0, NULL },
+ { TIKZIT_STOCK_SELECT, "Select", 0, 0, NULL },
+ { TIKZIT_STOCK_CREATE_NODE, "Create Node", 0, 0, NULL },
+ { TIKZIT_STOCK_CREATE_EDGE, "Create Edge", 0, 0, NULL },
+ { TIKZIT_STOCK_BOUNDING_BOX, "Bounding Box", 0, 0, NULL },
+ { TIKZIT_STOCK_DRAG, "Drag", 0, 0, NULL },
};
static guint n_stock_items = G_N_ELEMENTS (stock_items);