Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        /// <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();
            }
        }