From f0005d52707e1e8bfb19ba44782f169e59aa815d Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Tue, 11 Dec 2012 17:50:59 +0000 Subject: Remove use of GtkFrame in tool windows It's unnecessary and a waste of space. Use bolded titles instead. --- tikzit/src/gtk/BoundingBoxTool.m | 2 +- tikzit/src/gtk/CreateEdgeTool.m | 2 +- tikzit/src/gtk/CreateNodeTool.m | 2 +- tikzit/src/gtk/HandTool.m | 2 +- tikzit/src/gtk/PropertiesWindow.h | 6 +-- tikzit/src/gtk/PropertiesWindow.m | 107 +++++++++++++++++++++++++------------- tikzit/src/gtk/SelectTool.m | 2 +- tikzit/src/gtk/ToolBox.h | 2 +- tikzit/src/gtk/ToolBox.m | 37 +++++++++---- tikzit/src/gtk/tzstockitems.m | 10 ++-- 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); -- cgit v1.2.3