Просмотр исходного кода

Use gresources in level editor

Daniele Bartolini 9 лет назад
Родитель
Сommit
d46737e0cb
1 измененных файлов с 30 добавлено и 18 удалено
  1. 30 18
      tools/level_editor/level_editor.vala

+ 30 - 18
tools/level_editor/level_editor.vala

@@ -78,6 +78,9 @@ namespace Crown
 		private GraphStore _graph_store;
 		private GraphView _graph_view;
 */
+
+		private PreferencesDialog _preferences_dialog;
+
 		private Gtk.Alignment _alignment_engine;
 		private Gtk.Alignment _alignment_level_tree_view;
 		private Gtk.Alignment _alignment_properties_view;
@@ -236,6 +239,7 @@ namespace Crown
 			_graph_store = new GraphStore();
 			_graph_view = new GraphView(_graph_store);
 */
+
 			_starting_compiler = new StartingCompiler();
 			_alignment_engine = new Gtk.Alignment(0, 0, 1, 1);
 			_alignment_level_tree_view = new Gtk.Alignment(0, 0, 1, 1);
@@ -249,20 +253,20 @@ namespace Crown
 
 			try
 			{
-				Gtk.IconTheme.add_builtin_icon("tool-place",      16, new Pixbuf.from_file("ui/icons/theme/tool-place.png"));
-				Gtk.IconTheme.add_builtin_icon("tool-move",       16, new Pixbuf.from_file("ui/icons/theme/tool-move.png"));
-				Gtk.IconTheme.add_builtin_icon("tool-rotate",     16, new Pixbuf.from_file("ui/icons/theme/tool-rotate.png"));
-				Gtk.IconTheme.add_builtin_icon("tool-scale",      16, new Pixbuf.from_file("ui/icons/theme/tool-scale.png"));
-				Gtk.IconTheme.add_builtin_icon("axis-local",      16, new Pixbuf.from_file("ui/icons/theme/axis-local.png"));
-				Gtk.IconTheme.add_builtin_icon("axis-world",      16, new Pixbuf.from_file("ui/icons/theme/axis-world.png"));
-				Gtk.IconTheme.add_builtin_icon("snap-to-grid",    16, new Pixbuf.from_file("ui/icons/theme/snap-to-grid.png"));
-				Gtk.IconTheme.add_builtin_icon("reference-local", 16, new Pixbuf.from_file("ui/icons/theme/reference-local.png"));
-				Gtk.IconTheme.add_builtin_icon("reference-world", 16, new Pixbuf.from_file("ui/icons/theme/reference-world.png"));
-				Gtk.IconTheme.add_builtin_icon("run",             16, new Pixbuf.from_file("ui/icons/theme/run.png"));
-				Gtk.IconTheme.add_builtin_icon("level-tree",      16, new Pixbuf.from_file("ui/icons/theme/level-tree.png"));
-				Gtk.IconTheme.add_builtin_icon("level-layers",    16, new Pixbuf.from_file("ui/icons/theme/level-layers.png"));
-				Gtk.IconTheme.add_builtin_icon("layer-visible",   16, new Pixbuf.from_file("ui/icons/theme/layer-visible.png"));
-				Gtk.IconTheme.add_builtin_icon("layer-locked",    16, new Pixbuf.from_file("ui/icons/theme/layer-locked.png"));
+				Gtk.IconTheme.add_builtin_icon("tool-place",      16, new Pixbuf.from_resource("/org/pepper/icons/theme/tool-place.png"));
+				Gtk.IconTheme.add_builtin_icon("tool-move",       16, new Pixbuf.from_resource("/org/pepper/icons/theme/tool-move.png"));
+				Gtk.IconTheme.add_builtin_icon("tool-rotate",     16, new Pixbuf.from_resource("/org/pepper/icons/theme/tool-rotate.png"));
+				Gtk.IconTheme.add_builtin_icon("tool-scale",      16, new Pixbuf.from_resource("/org/pepper/icons/theme/tool-scale.png"));
+				Gtk.IconTheme.add_builtin_icon("axis-local",      16, new Pixbuf.from_resource("/org/pepper/icons/theme/axis-local.png"));
+				Gtk.IconTheme.add_builtin_icon("axis-world",      16, new Pixbuf.from_resource("/org/pepper/icons/theme/axis-world.png"));
+				Gtk.IconTheme.add_builtin_icon("snap-to-grid",    16, new Pixbuf.from_resource("/org/pepper/icons/theme/snap-to-grid.png"));
+				Gtk.IconTheme.add_builtin_icon("reference-local", 16, new Pixbuf.from_resource("/org/pepper/icons/theme/reference-local.png"));
+				Gtk.IconTheme.add_builtin_icon("reference-world", 16, new Pixbuf.from_resource("/org/pepper/icons/theme/reference-world.png"));
+				Gtk.IconTheme.add_builtin_icon("run",             16, new Pixbuf.from_resource("/org/pepper/icons/theme/run.png"));
+				Gtk.IconTheme.add_builtin_icon("level-tree",      16, new Pixbuf.from_resource("/org/pepper/icons/theme/level-tree.png"));
+				Gtk.IconTheme.add_builtin_icon("level-layers",    16, new Pixbuf.from_resource("/org/pepper/icons/theme/level-layers.png"));
+				Gtk.IconTheme.add_builtin_icon("layer-visible",   16, new Pixbuf.from_resource("/org/pepper/icons/theme/layer-visible.png"));
+				Gtk.IconTheme.add_builtin_icon("layer-locked",    16, new Pixbuf.from_resource("/org/pepper/icons/theme/layer-locked.png"));
 			}
 			catch (Error e)
 			{
@@ -282,7 +286,7 @@ namespace Crown
 			_ui_manager = new UIManager();
 			try
 			{
-				_ui_manager.add_ui_from_file("ui/level_editor_menu.xml");
+				_ui_manager.add_ui_from_resource("/org/pepper/level_editor_menu.xml");
 				_ui_manager.insert_action_group(_action_group, 0);
 				add_accel_group(_ui_manager.get_accel_group());
 			}
@@ -319,7 +323,7 @@ namespace Crown
 			_notebook_left.show_border = false;
 			_notebook_left.append_page(_pane_right, new Gtk.Label("Level"));
 /*
-			_notebook_left.append_page(_graph_view, new Gtk.Label("Pepper"));
+			_notebook_left.append_page(_graph_view, new Gtk.Label("Nodes"));
 */
 
 			MenuBar menu = (MenuBar)_ui_manager.get_widget("/menubar");
@@ -882,6 +886,14 @@ namespace Crown
 
 		private void on_preferences(Gtk.Action action)
 		{
+			if (_preferences_dialog == null)
+			{
+				_preferences_dialog = new PreferencesDialog(_engine);
+				_preferences_dialog.set_transient_for(this);
+				_preferences_dialog.delete_event.connect(() => { _preferences_dialog.hide(); return true; });
+			}
+
+			_preferences_dialog.show_all();
 		}
 
 		private void on_quit(Gtk.Action action)
@@ -1094,7 +1106,7 @@ namespace Crown
 
 			try
 			{
-				dlg.set_logo(new Pixbuf.from_file("ui/icons/128x128/pepper.png"));
+				dlg.set_logo(new Pixbuf.from_resource("/org/pepper/icons/128x128/pepper.png"));
 			}
 			catch (Error e)
 			{
@@ -1147,7 +1159,7 @@ namespace Crown
 		Gtk.CssProvider provider = new Gtk.CssProvider();
 		Gdk.Screen screen = Gdk.Display.get_default().get_default_screen();
 		Gtk.StyleContext.add_provider_for_screen(screen, provider, STYLE_PROVIDER_PRIORITY_APPLICATION);
-		provider.load_from_path("ui/theme/style.css");
+		provider.load_from_resource("/org/pepper/theme/style.css");
 
 		var window = new LevelEditor(args[1], args[2], args[3]);
 		window.show_all();