public MainWindow() { // Glade settings gui = new Glade.XML("monognomeart.glade", "mainWindow", ""); gui.Autoconnect(this); guiTypes = new Hashtable(); _idleHandlerFetchGuiArt = new IdleHandler(OnIdleFetchGuiArt); _currentTheme = new Theme(); // Add elements into statusbar statusLabel = new Label("MonoGnomeArt"); statusLabel.Xalign = 0F; loadArtProgressBar = new Gtk.ProgressBar(); mainStatusbar.Add(statusLabel); Gtk.Box.BoxChild bc0 = ((Gtk.Box.BoxChild)(mainStatusbar[statusLabel])); bc0.Position = 0; mainStatusbar.Add(loadArtProgressBar); Gtk.Box.BoxChild bc3 = ((Gtk.Box.BoxChild)(mainStatusbar[loadArtProgressBar])); bc3.Position = 3; // ThemeType Treeview definition themeTypeTreeview.Selection.Changed += new EventHandler(ThemeTypeSelectionChanged); // Store Model _themeTypeStore = new TreeStore(typeof(string)); themeTypeTreeview.Model = _themeTypeStore; // Add all Type and associate to ArtType TreeIter allTypeIter = AddThemeTypeElement("<b>All</b>"); guiTypes.Add(allTypeIter, ArtType.All); guiTypes.Add(AddThemeTypeElement("Background All"), ArtType.BackgroundAll); guiTypes.Add(AddThemeTypeElement("Background Gnome"), ArtType.BackgroundGnome); guiTypes.Add(AddThemeTypeElement("Background Other"), ArtType.BackgroundOther); guiTypes.Add(AddThemeTypeElement("Icons"), ArtType.ThemesIcons); guiTypes.Add(AddThemeTypeElement("Thème Applications"), ArtType.ThemesApplications); guiTypes.Add(AddThemeTypeElement("Window Border"), ArtType.ThemesWindowsBorders); guiTypes.Add(AddThemeTypeElement("Login Manager"), ArtType.ThemesGDM); guiTypes.Add(AddThemeTypeElement("Splash Screen"), ArtType.ThemesSplashs); guiTypes.Add(AddThemeTypeElement("Gtk+ Engine"), ArtType.ThemesGTKEngines); // Column instantiation TreeViewColumn themeTypeColumn = new TreeViewColumn(); // ThemeType Column definition CellRendererText typecr = new CellRendererText(); themeTypeColumn.Sizing = TreeViewColumnSizing.Fixed; themeTypeColumn.FixedWidth = 20; themeTypeColumn.Resizable = false; themeTypeColumn.PackStart(typecr, true); themeTypeColumn.AddAttribute(typecr, "markup", 0); themeTypeTreeview.AppendColumn(themeTypeColumn); themeTypeTreeview.Selection.SelectIter(allTypeIter); // Preview TreeView definition // Store Model _previewStore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string)); previewTreeview.Model = _previewStore; // Columns instantiation TreeViewColumn imageColumnPreview = new TreeViewColumn(); TreeViewColumn descColumnPreview = new TreeViewColumn(); // Image Column definition CellRendererPixbuf imagecr = new CellRendererPixbuf(); imageColumnPreview.Title = "Image"; imageColumnPreview.MinWidth = 200; imageColumnPreview.Sizing = TreeViewColumnSizing.Autosize; imageColumnPreview.PackStart(imagecr, true); imageColumnPreview.AddAttribute(imagecr, "pixbuf", 0); previewTreeview.AppendColumn(imageColumnPreview); // Description Column definition CellRendererText desccr = new CellRendererText(); descColumnPreview.Title = "Description"; descColumnPreview.MinWidth = 300; descColumnPreview.Sizing = TreeViewColumnSizing.Autosize; descColumnPreview.PackStart(desccr, true); descColumnPreview.AddAttribute(desccr, "markup", 1); previewTreeview.AppendColumn(descColumnPreview); gui["mainWindow"].ShowAll(); }
/// <summary> /// Initializes a new instance of the <see cref="Scrabble.GUI.ScrabbleWindow"/> class. /// </summary> /// <param name='isClient'> /// Is client. /// </param> /// <exception cref='System.NullReferenceException'> /// Is thrown when there is an attempt to dereference a null object reference. /// </exception> public ScrabbleWindow(bool isClient = false) : base(Gtk.WindowType.Toplevel) { #region Basic window properties // Basic window properties this.Title = "Scrabble - Hrací deska" + (isClient ? " (klient)" : ""); this.Name = "MainWindow"; this.DoubleBuffered = true; this.SetPosition(WindowPosition.Center); this.Icon = Scrabble.Game.InitialConfig.icon; this.DeleteEvent += new global::Gtk.DeleteEventHandler(this.OnDeleteEvent); this.DefaultWidth = 550; this.DefaultHeight = 700; #endregion this.client = isClient; if (Scrabble.Game.InitialConfig.game == null) { throw new System.NullReferenceException("During Scrabble main widow initialization is Scrabble.Game.InitialConfig.game == null"); } this.game = Scrabble.Game.InitialConfig.game; // General GUI classes this.menu = new MenuHover(this); this.desk = new Desk(this.game); this.rack = new Rack(this.game); this.control = new Control(this.game); this.info = new Info(this.game); this.bottomVbox = new VBox(true, 4); this.bottomVbox.PackStart(rack); this.bottomVbox.PackEnd(control); this.bottomVbox.ShowAll(); this.vertical = new HPaned(); this.vertical.HeightRequest = 100; // Use only CLIENT clientNotice = new Label(); clientNotice.Markup = "<b>Čekám</b> na aktualizaci dat o hře."; clientNotice.TooltipText = "Na portu " + Scrabble.Game.InitialConfig.port.ToString(); // STATUSBAR statusbar = new Statusbar(); statusbar.HeightRequest = 20; statusbar.Homogeneous = true; StatusLabelLast = new Label("Poslední tah:"); StatusLabelBest = new Label("Nejlepší tah:"); OnTurnLabel = new Label("Na tahu:"); statusbar.PackStart(OnTurnLabel, false, false, 0); statusbar.Add(StatusLabelLast); statusbar.PackEnd(StatusLabelBest, false, false, 0); // Vertical divide at bottom this.vertical = new HPaned(); this.vertical.HeightRequest = 100; this.vertical.Add1(bottomVbox); this.vertical.Add2(info); this.mainVbox = new VBox(false, 5); if (isClient) { this.mainVbox.PackStart(clientNotice, false, false, 5); } else { this.mainVbox.PackStart(menu.menuBar, false, false, 0); } this.mainVbox.Add(desk); this.mainVbox.Add(vertical); this.mainVbox.PackEnd(statusbar, false, false, 0); this.Add(mainVbox); this.changePlayer(game.GetActualPlayer()); if (isClient) { DisableButtons(); } }