patches/libgnometsol-01-LB_CLI.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 16507 a1d4ed7a7842
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16507
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     1
Index: src/selectlabel.c
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     2
===================================================================
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     3
--- src/selectlabel.c	(revision 0)
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     4
+++ src/selectlabel.c	(revision 14)
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     5
@@ -0,0 +1,171 @@
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     6
+/* Solaris Trusted Extensions GNOME desktop library.
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     7
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     8
+  Copyright (C) 2009 Sun Microsystems, Inc. All Rights Reserved.
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
     9
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    10
+  The contents of this library are subject to the terms of the
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    11
+  GNU Lesser General Public License version 2 (the "License")
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    12
+  as published by the Free Software Foundation. You may not use
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    13
+  this library except in compliance with the License.
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    14
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    15
+  You should have received a copy of the License along with this
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    16
+  library; see the file COPYING.  If not,you can obtain a copy
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    17
+  at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html or by writing
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    18
+  to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    19
+  Boston, MA 02111-1307, USA. See the License for specific language
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    20
+  governing permissions and limitations under the License.
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    21
+*/
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    22
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    23
+#include <config.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    24
+#include <glib.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    25
+#include <gtk/gtk.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    26
+#include <stdlib.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    27
+#include <strings.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    28
+#include <tsol/label.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    29
+#include <sys/tsol/label_macro.h>
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    30
+#include "label_builder.h"
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    31
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    32
+int
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    33
+main (int argc, char *argv[])
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    34
+{
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    35
+	GtkWidget *lbuilder;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    36
+	GOptionContext *context;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    37
+	m_label_t *lower = NULL, *upper = NULL, *def = NULL, *label = NULL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    38
+	int label_type;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    39
+	int err;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    40
+	uint_t flags;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    41
+	uint_t format_flags;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    42
+	GError *error = NULL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    43
+	char *min = NULL, *max = NULL, *defstr = NULL, *accredcheck = NULL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    44
+	char *modestr = NULL, *format = NULL, *title = NULL, *text=NULL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    45
+	char *labelstr;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    46
+	int mode, checkar;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    47
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    48
+	const GOptionEntry options [] = {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    49
+		{ "min", 'n', 0, G_OPTION_ARG_STRING, &min, 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    50
+		  "Minimim Label (Required)", "label string" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    51
+		{ "max", 'x', 0, G_OPTION_ARG_STRING, &max, 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    52
+		  "Maximum Label (Required)", "label string" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    53
+		{ "default", 'd', 0, G_OPTION_ARG_STRING, &defstr, 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    54
+		  "Default Selected Label", "label string" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    55
+		{ "accredcheck", 'a', 0, G_OPTION_ARG_STRING, &accredcheck, 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    56
+		  "Enable Accreditation checking", "[yes|no]" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    57
+		{ "mode", 'm', 0, G_OPTION_ARG_STRING, &modestr,
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    58
+		  "Clearance or Sensitivity mode", "[clearance|sensitivity]" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    59
+		{ "format", 'f', 0, G_OPTION_ARG_STRING, &format,
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    60
+		  "Internal or Human Readable format", "[internal|human]" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    61
+		{ "title", 'i', 0, G_OPTION_ARG_STRING, &title, 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    62
+		  "Window title", "title" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    63
+		{ "text", 't', 0, G_OPTION_ARG_STRING, &text, 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    64
+		  "Operation description", "text" },
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    65
+		{ NULL }
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    66
+	};
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    67
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    68
+	if (!is_system_labeled ()) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    69
+		g_printerr ("This command is only available if the system is "
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    70
+			    "configured with Trusted Extensions\n");
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    71
+		return 3;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    72
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    73
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    74
+	context = g_option_context_new (NULL);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    75
+	g_option_context_add_main_entries (context, options, NULL);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    76
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    77
+	if (!g_option_context_parse (context, &argc, &argv, &error)) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    78
+		g_printerr ("Could not parse arguments: %s\n", error->message);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    79
+		g_error_free (error);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    80
+		return 1;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    81
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    82
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    83
+	if (!min || !max) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    84
+		g_printerr ("You must specify both min and max labels\n\n%s", 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    85
+			 g_option_context_get_help (context, TRUE, NULL));
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    86
+		return 1;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    87
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    88
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    89
+	g_option_context_free (context);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    90
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    91
+	if (!defstr) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    92
+		defstr = g_strdup (max);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    93
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    94
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    95
+	if (modestr && strncmp (modestr, "clearance", 9) == 0) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    96
+		mode = LBUILD_MODE_CLR;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    97
+		label_type = USER_CLEAR;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    98
+	} else {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
    99
+		mode = LBUILD_MODE_SL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   100
+		label_type = MAC_LABEL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   101
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   102
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   103
+	if (format && strncmp (format, "human", 8) == 0) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   104
+		format_flags = M_LABEL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   105
+	} else {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   106
+		format_flags = M_INTERNAL;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   107
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   108
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   109
+	if (accredcheck && strncmp (accredcheck, "yes", 3) == 0) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   110
+		flags = L_DEFAULT | L_CHECK_AR;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   111
+	} else {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   112
+		flags = L_DEFAULT;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   113
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   114
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   115
+	if (str_to_label (min, &lower, label_type, flags, &err) < 0) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   116
+		g_printerr ("%s: Can not convert minimum label\n", argv[0]);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   117
+		if (err == M_OUTSIDE_AR) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   118
+			g_printerr ("Label is outside the accreditation range");
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   119
+			return (4);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   120
+		}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   121
+		return (2);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   122
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   123
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   124
+	if (str_to_label (max, &upper, label_type, flags, &err) < 0) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   125
+		g_printerr ("%s: Can not convert maximum label\n", argv[0]);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   126
+		if (err == M_OUTSIDE_AR) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   127
+			g_printerr ("Label is outside the accreditation range");
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   128
+			return (4);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   129
+		}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   130
+		return (2);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   131
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   132
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   133
+	if (str_to_label (defstr, &def, label_type, flags, &err)<0){
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   134
+		g_printerr ("%s: Can not convert default label\n", argv[0]);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   135
+		if (err == M_OUTSIDE_AR) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   136
+			g_printerr ("Label is outside the accreditation range");
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   137
+			return (4);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   138
+		}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   139
+		return (2);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   140
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   141
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   142
+	gtk_init (&argc, &argv);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   143
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   144
+	lbuilder = g_object_new (GNOME_TYPE_LABEL_BUILDER, "mode", mode,
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   145
+				 "message", text ? text : "Select a Label",
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   146
+				 "lower", lower, "upper", upper, NULL);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   147
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   148
+	gtk_window_set_title (GTK_WINDOW (lbuilder), 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   149
+			      title ? title : "Label Selector");
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   150
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   151
+	g_object_set (G_OBJECT (lbuilder), "sl", def, NULL);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   152
+	
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   153
+	gtk_widget_show_all (lbuilder);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   154
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   155
+	switch (gtk_dialog_run (GTK_DIALOG (lbuilder))) {
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   156
+	case GTK_RESPONSE_OK:
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   157
+		g_object_get (G_OBJECT (lbuilder), "sl", &label, NULL);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   158
+		if (label_to_str (label, &labelstr, format_flags, DEF_NAMES<0)){
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   159
+			g_printerr ("%s: Can not convert selected label",
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   160
+				    argv[0]);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   161
+			exit (2);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   162
+		}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   163
+		g_print ("%s\n", labelstr);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   164
+		gtk_widget_destroy (GTK_WIDGET (lbuilder));
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   165
+		break;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   166
+	case GTK_RESPONSE_CANCEL:
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   167
+		gtk_widget_destroy (GTK_WIDGET (lbuilder));
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   168
+		exit (5);
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   169
+		break;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   170
+	case GTK_RESPONSE_HELP:
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   171
+	default:
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   172
+		break;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   173
+	}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   174
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   175
+	return 0;
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   176
+}
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   177
Index: src/Makefile.am
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   178
===================================================================
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   179
--- src/Makefile.am	(revision 13)
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   180
+++ src/Makefile.am	(working copy)
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   181
@@ -52,3 +52,10 @@
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   182
 test_LDADD = libgnometsol.la
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   183
 test_DEPENDENCIES = libgnometsol.la
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   184
 
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   185
+bin_PROGRAMS = tgnome-selectlabel
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   186
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   187
+tgnome_selectlabel_SOURCES = selectlabel.c
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   188
+tgnome_selectlabel_LDADD = libgnometsol.la
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   189
+tgnome_selectlabel_DEPENDENCIES = libgnometsol.la
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   190
+
a1d4ed7a7842 2009-09-09 Stephen Browne <[email protected]>
stephen
parents:
diff changeset
   191
+