/// <summary>
        /// Constructs a <see cref="MainTitleIconControlVWG"/>
        /// </summary>
        public MainTitleIconControlVWG(IControlFactory controlFactory)
        {
            if (controlFactory == null) throw new ArgumentNullException("controlFactory");
            _controlFactory = controlFactory;
            _panel = _controlFactory.CreatePanel();
            ((PanelVWG)_panel).BackgroundImage = @"Images.headergradient.png";
            
            _panel.BackColor = Color.Transparent;
            _panel.Dock = Habanero.Faces.Base.DockStyle.Top;
            
            _panel.Height = 23;
            this.Size = new Size(_panel.Width,_panel.Height);
            _icon = _controlFactory.CreateLabel();
            ((LabelVWG)_icon).BackgroundImage = "";
            _icon.BackColor = Color.Transparent;
            ((LabelVWG)_icon).BackgroundImageLayout = ImageLayout.Center;
            _icon.Dock = Habanero.Faces.Base.DockStyle.Left;
            _icon.Size = new Size(20, 20);

            _title = _controlFactory.CreateLabel();
            _title.Font = new Font("Verdana", 10);
            _title.Dock = Habanero.Faces.Base.DockStyle.Fill;
            _title.BackColor = Color.Transparent;
            _title.TextAlign = ContentAlignment.MiddleLeft;
            _title.ForeColor = Color.White;

            _panel.Controls.Add(_title);
            _panel.Controls.Add(_icon);

            this.Dock = DockStyleVWG.GetDockStyle(DockStyle.Top);
            this.Controls.Add((PanelVWG)_panel);
            this.Height = 23;
        }
        /// <summary>
        /// Constructs a <see cref="MainTitleIconControlWin"/>
        /// </summary>
        public MainTitleIconControlWin(IControlFactory controlFactory)
        {
            if (controlFactory == null) throw new ArgumentNullException("controlFactory");
            _controlFactory = controlFactory;
            _panel = _controlFactory.CreatePanel();
            ((PanelWin)_panel).BackgroundImage = CollapsiblePanelResource.headergradient;
            _panel.BackColor = Color.Transparent;
            _panel.Dock = Habanero.Faces.Base.DockStyle.Top;

            _panel.Height = 23;

            _icon = _controlFactory.CreateLabel();
            ((LabelWin)_icon).BackgroundImage = CollapsiblePanelResource.headergradient;
            _icon.BackColor = Color.Transparent;
            ((LabelWin)_icon).BackgroundImageLayout = ImageLayout.Center;
            _icon.Dock = Habanero.Faces.Base.DockStyle.Left;
            _icon.Size = new Size(20, 20);

            _title = _controlFactory.CreateLabel();
            _title.Dock = Habanero.Faces.Base.DockStyle.Fill;
            _title.BackColor = Color.Transparent;
            _title.TextAlign = ContentAlignment.MiddleLeft;
            _title.ForeColor = Color.White;

            _panel.Controls.Add(_title);
            _panel.Controls.Add(_icon);
            _panel.MaximumSize = new Size(2000, 23);
            this.Dock = DockStyleWin.GetDockStyle(DockStyle.Top);
            this.Controls.Add((PanelWin)_panel);
            this.Height = 23;
        }
        ///<summary>
        /// Constructor for the <see cref="HelpAboutBoxManager"/>
        ///</summary>
        ///<param name="controlFactory"></param>
        ///<param name="formHabanero"></param>
        ///<param name="programName"></param>
        ///<param name="producedForName"></param>
        ///<param name="producedByName"></param>
        ///<param name="versionNumber"></param>
        public HelpAboutBoxManager(IControlFactory controlFactory, IFormHabanero formHabanero, string programName, string producedForName, string producedByName, string versionNumber)
        {
            _FormHabanero = formHabanero;
            _mainPanel = controlFactory.CreatePanel();
            GridLayoutManager mainPanelManager = new GridLayoutManager(_mainPanel, controlFactory);
            mainPanelManager.SetGridSize(4, 2);
            mainPanelManager.FixAllRowsBasedOnContents();
            mainPanelManager.FixColumnBasedOnContents(0);
            mainPanelManager.FixColumnBasedOnContents(1);
            mainPanelManager.AddControl(controlFactory.CreateLabel("Programme Name:", false));
            mainPanelManager.AddControl(controlFactory.CreateLabel(programName, false));
            mainPanelManager.AddControl(controlFactory.CreateLabel("Produced For:", false));
            mainPanelManager.AddControl(controlFactory.CreateLabel(producedForName, false));
            mainPanelManager.AddControl(controlFactory.CreateLabel("Produced By:", false));
            mainPanelManager.AddControl(controlFactory.CreateLabel(producedByName, false));
            mainPanelManager.AddControl(controlFactory.CreateLabel("Version:", false));
            mainPanelManager.AddControl(controlFactory.CreateLabel(versionNumber, false));

            IButtonGroupControl buttons = controlFactory.CreateButtonGroupControl();
            buttons.AddButton("OK", new EventHandler(OKButtonClickHandler));

            BorderLayoutManager manager = controlFactory.CreateBorderLayoutManager(formHabanero);
            manager.AddControl(_mainPanel, BorderLayoutManager.Position.Centre);
            manager.AddControl(buttons, BorderLayoutManager.Position.South);
            formHabanero.Width = 300;
            formHabanero.Height = 200;
            formHabanero.Text = "About";
        }
Beispiel #4
0
		private void onSaveGameLoaded()
		{
			_panel = _game.Find<IPanel>(_panel.ID);
			_inventoryItemIcon = _game.Find<IObject>(_inventoryItemIcon.ID);
			_player = _game.State.Player;
			_lastInventoryItem = null;
		}
Beispiel #5
0
        public void FillPanel(IPanel panel)
        {
            if (panel.fields.Count() > 0) { // editable Panel, fetch the DataRow, simple controls
                var columns = panel.fields.Select(x => x.column);
                DataTable table = fetchAll("SELECT ", columns, " FROM ", panel.tableName, "WHERE", new ConditionMySql(panel.PK));
                if (table.Rows.Count > 1) throw new Exception("PK not unique");
                if (table.Rows.Count == 0) throw new Exception("No data fullfill the condition");
                DataRow row = table.Rows[0];
                foreach (IField field in panel.fields) {
                    field.value = row[field.column];
                }
            }

            foreach (IControl c in panel.controls) {
                if (c.data.Rows.Count == 0) {
                    List<string> columns = new List<string>();
                    foreach (DataColumn col in c.data.Columns)
                        columns.Add(col.ColumnName);
                    c.data = fetchAll("SELECT ", columns, " FROM ", panel.tableName, "WHERE", new ConditionMySql(panel.PK));
                }
                if (c.data.Rows.Count == 0) throw new Exception("No data fullfill the condition");
            }

            foreach (IPanel p in panel.children)
                FillPanel(p);
        }
        ///<summary>
        ///</summary>
        ///<param name="controlFactory"></param>
        public FilterControlVWG(IControlFactory controlFactory)
        {

            this.Height = 50;
            _controlFactory = controlFactory;
            _groupBox = _controlFactory.CreateGroupBox();
            //_groupBox.Anchor = AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom;
            //_groupBox.Top = 0;
            //_groupBox.Left = 0;
            //_groupBox.Width = this.Width;
            //_groupBox.Height = this.Height;
            //this.Controls.Add((Control) _groupBox);
            _controlFactory.CreateBorderLayoutManager(this).AddControl(_groupBox, BorderLayoutManager.Position.Centre);
            _groupBox.Text = "Filter the Grid";

            BorderLayoutManager layoutManager = controlFactory.CreateBorderLayoutManager(_groupBox);
            layoutManager.BorderSize = 20;
            IPanel filterButtonPanel = controlFactory.CreatePanel();
            filterButtonPanel.Height = 50;
            filterButtonPanel.Width = 110;
            CreateFilterButtons(filterButtonPanel);

            layoutManager.AddControl(filterButtonPanel, BorderLayoutManager.Position.West);

            _filterPanel = controlFactory.CreatePanel();
            _filterPanel.Width = this.Width;

            layoutManager.AddControl(_filterPanel, BorderLayoutManager.Position.Centre);
            _filterControlManager = new FilterControlManager(controlFactory, new FlowLayoutManager(_filterPanel, controlFactory));
        }
 /// <summary>
 /// Constructor to initialise a new instance of the class
 /// </summary>
 /// <param name="panel">The panel control being managed</param>
 /// <param name="mappers">The control mappers collection</param>
 /// <param name="uiDefName">The UI definition name to use</param>
 /// <param name="firstControlToFocus">The first control to focus on</param>
 public PanelFactoryInfo(IPanel panel, IControlMapperCollection mappers, string uiDefName, IControlHabanero firstControlToFocus)
 {
     _panel = panel;
     _mappers = mappers;
     _firstControlToFocus = firstControlToFocus;
     _uiDefName = uiDefName;
     _formGrids = new Dictionary<string, IEditableGridControl>();
 }
Beispiel #8
0
 public void _initControl()
 {
     PlatformSingleton platformSingleton_ = __singleton<PlatformSingleton>._instance();
     string panelUrl_ = @"uid://program.optimal.window:window.optimal.Panel";
     string cprojectUrl_ = @"rid://program.optimal.cprojectPropertyUrl";
     mPanel = platformSingleton_._loadHeadstream<IPanel>(panelUrl_, cprojectUrl_);
     mApplicationTypeComboBox = mPanel._childControl("comboBox1") as IComboBox;
     mApplicationTypeComboBox.m_tSelectTextSlot += this._getApplicationTypeStr;
 }
Beispiel #9
0
 public void updatePanel(IPanel panel, DataRow values)
 {
     StartTransaction();
     int affected = query("UPDATE " + panel.tableName + " SET ", values, " WHERE ", panel.PK);
     if(affected > 1){
         RollbackTransaction();
         throw new Exception("Panel PK not unique, trying to update more rows at a time!");
     }
     CommitTransaction();
 }
Beispiel #10
0
 public void deletePanel(IPanel panel)
 {
     StartTransaction();
     int affected = query("DELETE FROM `" + panel.tableName + "` WHERE", panel.PK);
     if (affected > 1) {
         RollbackTransaction();
         throw new Exception("Panel PK not unique, trying to delete more rows at a time!");
     }
     CommitTransaction();
 }
Beispiel #11
0
        protected void InitSelectedIndexes(IPanel panel)
        {
            if (panel == null) throw new ArgumentNullException("panel");

            // nothing
            if (!panel.SelectionExists)
                return;

            // keep selected indexes
            _SelectedIndexes = panel.SelectedIndexes();
        }
Beispiel #12
0
        protected void InitSelectedNames(IPanel panel)
        {
            if (panel == null) throw new ArgumentNullException("panel");

            // nothing
            if (!panel.SelectionExists)
                return;

            // copy selected names
            var files = panel.SelectedList;
            _SelectedNames = new string[files.Count];
            for (int i = files.Count; --i >= 0; )
                _SelectedNames[i] = files[i].Name;
        }
Beispiel #13
0
        public MainWindow()
        {
            InitializeComponent();

            _panel = new Panel();
            _panel.Activate();
            _panel.MaxNotifications = 5;
            _panel.MaxWidth = 300;
            _panel.MinWidth = 150;
            //_panel.InformationColor = Brushes.Green;
            //_panel.WarningColor = Brushes.Green;
            //_panel.ErrorColor = Brushes.Magenta;
            _panel.Parent = this;
            _panel.StartupLocation = StartupLocation.TopRight;
        }
        /// <summary>
        /// Initialises the WizardControl with the IWizardController.  No logic is performed other than storing the wizard controller.
        /// </summary>
        /// <param name="wizardController"></param>
        /// <param name="controlFactory">The control factory that this control will use to create a button</param>
        public WizardControlWin(IWizardController wizardController, IControlFactory controlFactory)
        {
            if (wizardController == null) throw new ArgumentNullException("wizardController");
            if (controlFactory == null) throw new ArgumentNullException("controlFactory");
            _wizardController = wizardController;
            ControlFactory = controlFactory;

            _wizardControlManager = new WizardControlManager(this);

            var buttonPanel = CreateButtonPanel();

            _wizardStepPanel = ControlFactory.CreatePanel();

            BorderLayoutManagerWin borderLayoutManager = new BorderLayoutManagerWin(this, ControlFactory);
            borderLayoutManager.AddControl(_wizardStepPanel, BorderLayoutManager.Position.Centre);
            borderLayoutManager.AddControl(buttonPanel, BorderLayoutManager.Position.South);
        }
Beispiel #15
0
		public async Task<IPanel> LoadAsync(IGame game)
		{
			_game = game;
			_game.Events.OnSavedGameLoad.Subscribe((sender, e) => onSaveGameLoaded());
			IGameFactory factory = game.Factory;
			_player = game.State.Player;
			_panel = await factory.UI.GetPanelAsync("Toolbar", "../../Assets/Gui/DialogBox/toolbar.bmp", 0f, 180f);
			_panel.Visible = false;

			await loadButton("Walk Button", factory, "walk/", 0f, RotatingCursorScheme.WALK_MODE);
			await loadButton("Interact Button",factory, "hand/", 20f, RotatingCursorScheme.INTERACT_MODE);
			await loadButton("Look Button",factory, "eye/", 40f, RotatingCursorScheme.LOOK_MODE);
			await loadButton("Talk Button", factory, "talk/", 60f, MouseCursors.TALK_MODE);
			IButton invButton = await loadButton("Inventory Button", factory, "inventory/", 80f);
			IButton activeInvButton = await loadButton("Active Inventory Button", factory, "activeInventory/", 100f, RotatingCursorScheme.INVENTORY_MODE);
			activeInvButton.Z = 1f;
			await loadButton("Help Button", factory, "help/", 280f);
			IButton optionsButton = await loadButton("Settings Button", factory, "settings/", 300f);

			invButton.OnMouseClick(() => _invPanel.Show(), _game);
			optionsButton.OnMouseClick(() => _optionsPanel.Show(), _game);

			game.Events.OnRepeatedlyExecute.Subscribe(onRepeatedlyExecute);
			_inventoryItemIcon = factory.Object.GetObject("Inventory Item Icon");
			_inventoryItemIcon.X = 10f;
			_inventoryItemIcon.Y = 10f;
			_inventoryItemIcon.Anchor = new AGS.API.PointF (0f, 0f);
			_inventoryItemIcon.TreeNode.SetParent(activeInvButton.TreeNode);
			_inventoryItemIcon.RenderLayer = _panel.RenderLayer;
            _inventoryItemIcon.Enabled = false;
            _inventoryItemIcon.IgnoreScalingArea = true;
            _inventoryItemIcon.IgnoreViewport = true;
			game.State.UI.Add(_inventoryItemIcon);

            ILabel label = game.Factory.UI.GetLabel("Hotspot Label", "", 150f, 20f, 200f, 0f, new AGSTextConfig(brush: Hooks.BrushLoader.LoadSolidBrush(Colors.LightGreen),
                alignment: Alignment.MiddleCenter, autoFit: AutoFit.TextShouldFitLabel, paddingBottom: 5f,
                font: Hooks.FontLoader.LoadFont(AGSGameSettings.DefaultTextFont.FontFamily, 10f)));
            label.Anchor = new AGS.API.PointF(0.5f, 0f);
            label.TreeNode.SetParent(_panel.TreeNode);
            VerbOnHotspotLabel hotspotLabel = new VerbOnHotspotLabel(() => _scheme.CurrentMode, game, label);
            hotspotLabel.Start();

            return _panel;
		}
Beispiel #16
0
		public async Task LoadAsync(IGame game)
		{
			_game = game;
			IGameFactory factory = game.Factory;
			_panel = await factory.UI.GetPanelAsync(_panelId, "../../Assets/Gui/DialogBox/options.bmp", 160f, 100f);
			_panel.Anchor = new AGS.API.PointF (0.5f, 0.5f);
			_panel.Visible = false;

            AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0));

			ISlider volumeSlider = await factory.UI.GetSliderAsync("Volume Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 0.5f, 0f, 1f, 
				loadConfig: loadConfig);
			volumeSlider.X = 120f;
			volumeSlider.Y = 10f;
			volumeSlider.HandleGraphics.Anchor = new AGS.API.PointF (0.5f, 0.5f);
			volumeSlider.TreeNode.SetParent(_panel.TreeNode);
			volumeSlider.OnValueChanged(onVolumeChanged, _game);

			ILabel volumeLabel = factory.UI.GetLabel("Volume Label", "Volume", 50f, 30f, 120f, 85f, _textConfig); 
			volumeLabel.Anchor = new AGS.API.PointF (0.5f, 0f);
			volumeLabel.TreeNode.SetParent(_panel.TreeNode);

			ISlider speedSlider = await factory.UI.GetSliderAsync("Speed Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 100f, 1f, 200f, 
				loadConfig: loadConfig);
			speedSlider.X = 180f;
			speedSlider.Y = 10f;
			speedSlider.HandleGraphics.Anchor = new AGS.API.PointF (0.5f, 0.5f);
			speedSlider.TreeNode.SetParent(_panel.TreeNode);
			speedSlider.OnValueChanged(onSpeedChanged, _game);

			ILabel speedLabel = factory.UI.GetLabel("Speed Label", "Speed", 50f, 30f, 180f, 85f, _textConfig); 
			speedLabel.Anchor = new AGS.API.PointF (0.5f, 0f);
			speedLabel.TreeNode.SetParent(_panel.TreeNode);

			_game.Events.OnSavedGameLoad.Subscribe((sender, args) => findPanel());

            await loadButton("Resume", 95, Hide);
            await loadButton("Restart", 75, restart);
			await loadButton("Load", 55, load);
			await loadButton("Save", 35, save);
			await loadButton("Quit", 15, quit);
		}
Beispiel #17
0
 // holder (if != null) in attr["holder"]
 public Panel(string tableName, int panelId, int typeId, string typeName, List<IPanel> children,
     List<IField> fields, List<IControl> controls, List<string> PKColNames, DataRow PK = null,
     PropertyCollection viewAttr = null, PropertyCollection controlAttr = null, IPanel parent = null)
 {
     this.tableName = tableName;
     this.viewAttr = viewAttr == null ? new PropertyCollection() : viewAttr;
     this.controlAttr = controlAttr==null?new PropertyCollection():controlAttr;
     this.panelId = panelId;
     this.children = children;
     this.fields = fields;
     this.controls = controls;
     this.PKColNames = PKColNames;
     this.PK = PK;
     this.typeId = typeId;
     this.typeName = typeName;
     this.parent = parent;
     if (this.controls == null) this.controls = new List<IControl>();
     if (this.fields == null) this.fields = new List<IField>();
     if (this.controlAttr == null) this.controlAttr = new PropertyCollection();
     if (this.viewAttr == null) this.viewAttr = new PropertyCollection();
     if (this.PKColNames == null) this.PKColNames = new List<string>();
 }
        ///<summary>
        /// Constructor for <see cref="FilterControlWin"/>
        ///</summary>
        ///<param name="controlFactory"></param>
        public FilterControlWin(IControlFactory controlFactory)
        {
            Height = 50;
            _controlFactory = controlFactory;
            FilterGroupBox = _controlFactory.CreateGroupBox();
//            _groupBox = _controlFactory.CreatePanel();
            _controlFactory.CreateBorderLayoutManager(this).AddControl(FilterGroupBox, BorderLayoutManager.Position.Centre);
            FilterGroupBox.Text = "Filter the Grid";
            BorderLayoutManager layoutManager = controlFactory.CreateBorderLayoutManager(FilterGroupBox);
            layoutManager.BorderSize = 20;
            _filterButtonPanel = controlFactory.CreatePanel();
            _filterButtonPanel.Height = 50;
            _filterButtonPanel.Width = 120;   //110;
            _filterButtonPanel.Visible = false;
            CreateFilterButtons(_filterButtonPanel);

            _controlPanel = controlFactory.CreatePanel();
            _controlPanel.Width = Width;

            this.EnsureButtonsFit();
            this._filterButtonPanel.Resize += (sender, e) => { this.EnsureButtonsFit(); };

            layoutManager.AddControl(_controlPanel, BorderLayoutManager.Position.Centre);
            layoutManager.AddControl(_filterButtonPanel, BorderLayoutManager.Position.East);


            Height = 50;
            this._controlPanel.Resize += (sender, e) =>
                {
                    this.Height = this._controlPanel.Height + layoutManager.BorderSize;
                    if ((this.FilterGroupBox.Height - layoutManager.BorderSize) < this.Height)
                    {
                        this.FilterGroupBox.Height = this.Height;
                    }
                };
            _filterControlManager = new FilterControlManager(controlFactory,
                                                             new FlowLayoutManager(_controlPanel, controlFactory));
        }
        void Constructor(IPanel panelObj, UIRenderDevice deviceObj, UIRAtlasManager atlasMan, VectorImageManager vectorImageMan)
        {
            if (disposed)
            {
                DisposeHelper.NotifyDisposedUsed(this);
            }

            // A reasonable starting depth level suggested here
            m_DirtyTracker.heads     = new List <VisualElement>(8);
            m_DirtyTracker.tails     = new List <VisualElement>(8);
            m_DirtyTracker.minDepths = new int[(int)RenderDataDirtyTypeClasses.Count];
            m_DirtyTracker.maxDepths = new int[(int)RenderDataDirtyTypeClasses.Count];
            m_DirtyTracker.Reset();

            this.panel              = panelObj;
            this.device             = deviceObj;
            this.atlasManager       = atlasMan;
            this.vectorImageManager = vectorImageMan;
            this.shaderInfoAllocator.Construct();

            painter              = new Implementation.UIRStylePainter(this);
            Font.textureRebuilt += OnFontReset;
        }
Beispiel #20
0
 private void SetupDisplayBox()
 {
     //ControlsHelper.SafeGui(_dateTimePicker, delegate()
     //{
     _displayBox = _controlFactory.CreatePanel();
     //_displayBox.BorderStyle = BorderStyle.None;
     //_displayBox.Location = new Point(2, 2);
     ResizeDisplayBox();
     _displayBox.BackColor = _dateTimePicker.BackColor;
     _displayBox.ForeColor = _dateTimePicker.ForeColor;
     //_displayBox.MouseUp += DateTimePicker_MouseUp;
     //_displayBox.KeyDown += DateTimePicker_KeyDown;
     _displayText = _controlFactory.CreateLabel();
     //_displayText.Location = new Point(0, 0);
     _displayText.AutoSize = true;
     _displayText.Text     = "";
     //_displayText.MouseUp += DateTimePicker_MouseUp;
     //_displayText.KeyDown += DateTimePicker_KeyDown;
     _displayBox.Controls.Add(_displayText);
     _dateTimePicker.Controls.Add(_displayBox);
     _displayBox.Visible = false;
     //});
 }
Beispiel #21
0
        /// <summary>
        /// Displays the main menu
        /// </summary>
        private void mainMenuHandler()
        {
            var panelClass = "MainMenu";

            if (Context.AppPanelManager.IsCurrentPanelClass(panelClass))
            {
                return;
            }

            Form form = Dispatcher.Scanner.Form;

            if (Windows.GetVisible(form))
            {
                form.Invoke(new MethodInvoker(delegate
                {
                    IPanel mainMenu = Context.AppPanelManager.CreatePanel(panelClass) as IPanel;
                    if (mainMenu != null)
                    {
                        Context.AppPanelManager.ShowDialog(form as IPanel, mainMenu);
                    }
                }));
            }
        }
Beispiel #22
0
        /// <summary>
        /// Creates the <see cref="Panel"/> when <see cref="ApplyTemplate"/> is called for the first
        /// time.
        /// </summary>
        private void CreatePanel()
        {
            Panel = ItemsPanel.Build();
            Panel.SetValue(TemplatedParentProperty, TemplatedParent);

            if (!Panel.IsSet(KeyboardNavigation.DirectionalNavigationProperty))
            {
                KeyboardNavigation.SetDirectionalNavigation(
                    (InputElement)Panel,
                    KeyboardNavigationMode.Contained);
            }

            LogicalChildren.Clear();
            VisualChildren.Clear();
            LogicalChildren.Add(Panel);
            VisualChildren.Add(Panel);

            KeyboardNavigation.SetTabNavigation(
                (InputElement)Panel,
                KeyboardNavigation.GetTabNavigation(this));
            _createdPanel = true;
            CreateItemsAndListenForChanges(Items);
        }
Beispiel #23
0
        public bool TrySelectWindow(EditorWindow searchedWindow)
        {
            var root = EditorModes.GetRootElement(searchedWindow);

            if (root == null)
            {
                return(false);
            }

            IPanel searchedPanel = root.panel;

            for (int i = 0; i < m_Panels.Count; i++)
            {
                var p = m_Panels[i];
                if (p.Panel == searchedPanel)
                {
                    m_Selected = i + 1;
                    return(true);
                }
            }

            return(false);
        }
Beispiel #24
0
        /// <summary>
        /// Creates the <see cref="Panel"/> when <see cref="ApplyTemplate"/> is called for the first
        /// time.
        /// </summary>
        private void CreatePanel()
        {
            Panel = ItemsPanel.Build();
            Panel.SetValue(TemplatedParentProperty, TemplatedParent);

            LogicalChildren.Clear();
            VisualChildren.Clear();
            LogicalChildren.Add(Panel);
            VisualChildren.Add(Panel);

            _createdPanel = true;

            INotifyCollectionChanged incc = Items as INotifyCollectionChanged;

            if (incc != null)
            {
                incc.CollectionChanged += ItemsCollectionChanged;
            }

            PanelCreated(Panel);

            ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
        }
Beispiel #25
0
        private void RewritePanelProperties(IPanel panel)
        {
            // ingore holder, except from that just copy
            panel.viewAttr.Remove("id_holder");
            Dictionary <string, object> insertVals = new Dictionary <string, object>();

            insertVals["id_panel"] = panel.panelId;
            insertVals["concerns"] = CC.ATTR_CONTROLS;
            foreach (string key in panel.controlAttr.Keys)
            {
                insertVals["name"] = key;
                insertVals["val"]  = panel.controlAttr[key].ToString();
                query("REPLACE INTO panels_meta ", insertVals);
            }

            insertVals["concerns"] = CC.ATTR_VIEW;
            foreach (string key in panel.viewAttr.Keys)
            {
                insertVals["name"] = key;
                insertVals["val"]  = panel.viewAttr[key].ToString();
                query("REPLACE INTO panels_meta ", insertVals);
            }
        }
        public void TestCollapseOneAfterAnother()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            IPanel            content3            = GetControlFactory().CreatePanel();
            ICollapsiblePanel collapsiblePanel1   = control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2   = control.AddControl(content2, "", 53);
            ICollapsiblePanel collapsiblePanel3   = control.AddControl(content3, "", 53);

            //---------------Execute Test ----------------------
            collapsiblePanel1.Collapsed = true;
            collapsiblePanel2.Collapsed = true;
            collapsiblePanel3.Collapsed = true;
            collapsiblePanel2.Collapsed = false;
            collapsiblePanel1.Collapsed = false;

            //---------------Test Result -----------------------
            //panel1 should be the same as its original height after the above steps
            Assert.AreEqual(collapsiblePanel1.ExpandedHeight, collapsiblePanel1.Height);
            //---------------Tear Down -------------------------
        }
Beispiel #27
0
        public void DispatchEvent(EventBase evt, IPanel panel)
        {
            if (evt.target != null)
            {
                evt.propagateToIMGUI = evt.target is IMGUIContainer;
                EventDispatchUtilities.PropagateEvent(evt);
            }
            else
            {
                if (!evt.isPropagationStopped && panel != null)
                {
                    if (evt.propagateToIMGUI ||
                        evt.eventTypeId == MouseEnterWindowEvent.TypeId() ||
                        evt.eventTypeId == MouseLeaveWindowEvent.TypeId()
                        )
                    {
                        EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                    }
                }
            }

            evt.stopDispatch = true;
        }
        public void TestUncollapsingPanelCollapsingAllOtherPanelsExceptPinnedPanels()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            IPanel            content3            = GetControlFactory().CreatePanel();
            ICollapsiblePanel collapsiblePanel1   = control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2   = control.AddControl(content2, "", 53);
            ICollapsiblePanel collapsiblePanel3   = control.AddControl(content3, "", 53);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            collapsiblePanel2.Pinned    = true;
            collapsiblePanel1.Collapsed = false;
            collapsiblePanel3.Collapsed = false;
            //---------------Test Result -----------------------
            Assert.IsFalse(collapsiblePanel2.Collapsed);
            Assert.IsTrue(collapsiblePanel2.Pinned);
            Assert.IsTrue(collapsiblePanel1.Collapsed);
            Assert.IsFalse(collapsiblePanel3.Collapsed);
        }
Beispiel #29
0
        public List <EventDebuggerPathTrace> GetPropagationPaths(IPanel panel, EventDebuggerEventRecord evt = null)
        {
            if (!m_EventPathObjects.TryGetValue(panel, out var list))
            {
                return(null);
            }

            if ((evt != null) && (list != null))
            {
                List <EventDebuggerPathTrace> filteredList = new List <EventDebuggerPathTrace>();
                foreach (var pathObject in list)
                {
                    if (pathObject.eventBase.eventId == evt.eventId)
                    {
                        filteredList.Add(pathObject);
                    }
                }

                list = filteredList;
            }

            return(list);
        }
Beispiel #30
0
        public List <EventDebuggerTrace> GetBeginEndProcessedEvents(IPanel panel, EventDebuggerEventRecord evt = null)
        {
            if (!m_EventProcessedEvents.TryGetValue(panel, out var list))
            {
                return(null);
            }

            if ((evt != null) && (list != null))
            {
                List <EventDebuggerTrace> filteredList = new List <EventDebuggerTrace>();
                foreach (var defaultActionObject in list)
                {
                    if (defaultActionObject.eventBase.eventId == evt.eventId)
                    {
                        filteredList.Add(defaultActionObject);
                    }
                }

                list = filteredList;
            }

            return(list);
        }
Beispiel #31
0
        /// <summary>
        /// 根据面板类型 得到实例化的面板
        /// </summary>
        /// <returns></returns>
        private IPanel GetPanel(UIPanelType panelType)
        {
            if (m_panelDict == null)
            {
                m_panelDict = new Dictionary <UIPanelType, IPanel>();
            }

            IPanel panel = m_panelDict.TryGet(panelType);

            if (panel == null)
            {
                //如果找不到,那么就找这个面板的prefab的路径,然后去根据prefab去实例化面板
                string     path      = m_panelPathDict.TryGet(panelType);
                GameObject instPanel = GameObject.Instantiate(Resources.Load(path)) as GameObject;
                instPanel.transform.SetParent(CanvasTransform, false);
                m_panelDict.Add(panelType, instPanel.GetComponent <IPanel>());
                return(instPanel.GetComponent <IPanel>());
            }
            else
            {
                return(panel);
            }
        }
Beispiel #32
0
        public List <EventDebuggerCallTrace> GetCalls(IPanel panel, EventDebuggerEventRecord evt = null)
        {
            if (!m_EventCalledObjects.TryGetValue(panel, out var list))
            {
                return(null);
            }

            if ((evt != null) && (list != null))
            {
                List <EventDebuggerCallTrace> filteredList = new List <EventDebuggerCallTrace>();
                foreach (var callObject in list)
                {
                    if (callObject.eventBase.eventId == evt.eventId)
                    {
                        filteredList.Add(callObject);
                    }
                }

                list = filteredList;
            }

            return(list);
        }
Beispiel #33
0
        private IEnumerable <TreeViewItem> ExtractItemContent(IPanel panel, int currentLevel, int level)
        {
            foreach (TreeViewItem container in panel.Children)
            {
                if (container.Template == null)
                {
                    container.Template = CreateTreeViewItemTemplate();
                    container.ApplyTemplate();
                }

                if (currentLevel == level)
                {
                    yield return(container);
                }
                else
                {
                    foreach (var child in ExtractItemContent(container.Presenter.Panel, currentLevel + 1, level))
                    {
                        yield return(child);
                    }
                }
            }
        }
        /// <summary>
        /// Initialises the WizardControl with the IWizardController.  No logic is performed other than storing the wizard controller.
        /// </summary>
        /// <param name="wizardController"></param>
        /// <param name="controlFactory">The control factory that this control will use to create a button</param>
        public WizardControlVWG(IWizardController wizardController, IControlFactory controlFactory)
        {
            if (wizardController == null)
            {
                throw new ArgumentNullException("wizardController");
            }
            if (controlFactory == null)
            {
                throw new ArgumentNullException("controlFactory");
            }
            _wizardController = wizardController;
            _controlFactory   = controlFactory;

            _wizardControlManager = new WizardControlManager(this);
            IPanel buttonPanel = CreateButtonPanel();

            _wizardStepPanel = _controlFactory.CreatePanel();

            BorderLayoutManagerVWG borderLayoutManager = new BorderLayoutManagerVWG(this, _controlFactory);

            borderLayoutManager.AddControl(_wizardStepPanel, BorderLayoutManager.Position.Centre);
            borderLayoutManager.AddControl(buttonPanel, BorderLayoutManager.Position.South);
        }
Beispiel #35
0
        public void Execute(IPanel panel)
        {
            if (panel == null)
            {
                throw new ArgumentNullException("panel");
            }

            var tabContainer = panel.Parent as TabContainer;

            if (tabContainer != null)
            {
                if (tabContainer.Parent is IPanelContainer)
                {
                    var stackContainer = new StackContainer
                    {
                        Header = new PanelHeader
                        {
                            Text = "Stack Container"
                        },
                        Orientation = FindOptimalStackContainerOrientation(tabContainer)
                                      ?? Orientation.Horizontal,
                        IsSelected = true
                    };

                    var parentContainer   = tabContainer.Parent as IPanelContainer;
                    int tabContainerIndex = parentContainer.Childs.IndexOf(tabContainer);
                    var newTabContainer   = (TabContainer)tabContainer.Clone();

                    parentContainer.Childs.Remove(tabContainer);

                    stackContainer.Childs.Add(tabContainer);
                    stackContainer.Childs.Add(newTabContainer);

                    parentContainer.Childs.Insert(tabContainerIndex, stackContainer);
                }
            }
        }
        public void Test_BuildPanelForTab_Parameter_SetNumericUpDownAlignment()
        {
            //---------------Set up test pack-------------------
            Sample.SampleUserInterfaceMapper interfaceMapper = GetSampleUserInterfaceMapper();
            UIFormTab singleFieldTab = interfaceMapper.GetFormTabOneFieldsWithAlignment_NumericUpDown();

            Habanero.Faces.Base.PanelBuilder panelBuilder = CreatePanelBuilder();
            //---------------Assert Precondition----------------
            Assert.AreEqual("left", ((UIFormField)singleFieldTab[0][0]).Alignment);
            Assert.AreEqual("right", ((UIFormField)singleFieldTab[0][1]).Alignment);
            Assert.AreEqual("center", ((UIFormField)singleFieldTab[0][2]).Alignment);
            Assert.AreEqual("centre", ((UIFormField)singleFieldTab[0][3]).Alignment);
            //---------------Execute Test ----------------------
            IPanel panel = panelBuilder.BuildPanelForTab(singleFieldTab).Panel;

            //---------------Test Result -----------------------

            Assert.IsInstanceOf(typeof(INumericUpDown), panel.Controls[1]);
            INumericUpDown control1 = (INumericUpDown)panel.Controls[1];

            Assert.AreEqual(HorizontalAlignment.Left, control1.TextAlign);

            Assert.IsInstanceOf(typeof(INumericUpDown), panel.Controls[Habanero.Faces.Base.PanelBuilder.CONTROLS_PER_COLUMN + 1]);
            INumericUpDown control2 = (INumericUpDown)panel.Controls[Habanero.Faces.Base.PanelBuilder.CONTROLS_PER_COLUMN + 1];

            Assert.AreEqual(HorizontalAlignment.Right, control2.TextAlign);

            Assert.IsInstanceOf(typeof(INumericUpDown), panel.Controls[Habanero.Faces.Base.PanelBuilder.CONTROLS_PER_COLUMN * 2 + 1]);
            INumericUpDown control3 = (INumericUpDown)panel.Controls[Habanero.Faces.Base.PanelBuilder.CONTROLS_PER_COLUMN * 2 + 1];

            Assert.AreEqual(HorizontalAlignment.Center, control3.TextAlign);

            Assert.IsInstanceOf(typeof(INumericUpDown), panel.Controls[Habanero.Faces.Base.PanelBuilder.CONTROLS_PER_COLUMN * 3 + 1]);
            INumericUpDown control4 = (INumericUpDown)panel.Controls[Habanero.Faces.Base.PanelBuilder.CONTROLS_PER_COLUMN * 3 + 1];

            Assert.AreEqual(HorizontalAlignment.Center, control4.TextAlign);
        }
Beispiel #37
0
        private void DeletePanel([NotNull] IPanelFactory factory, [NotNull] IPanel panel)
        {
            foreach (var item in _panelsListButtons.Values)
            {
                var subItems = item.SubItems.OfType <BaseItem>().ToArray();
                foreach (BaseItem subItem in subItems)
                {
                    if (subItem.Tag is IActionDefinition action &&
                        panel is IPanel <Form> formPanel &&
                        formPanel.PanelContainer is PanelContainerForm containerForm)
                    {
                        var actionForm = FindForm(action);
                        if (actionForm == containerForm)
                        {
                            subItem.Click -= Button_Click;
                            item.SubItems.Remove(subItem);

                            if (action is INotifyPropertyChanged childButtonAction)
                            {
                                childButtonAction.PropertyChanged -= OnChildButtonActionPropertyChanged;
                            }

                            _childParentActions.Remove(action.Id);
                            break;
                        }
                    }
                }

                if (!item.SubItems.OfType <BaseItem>().Any() &&
                    item.Tag is IActionDefinition itemAction)
                {
                    item.Enabled = itemAction.Enabled;
                }
            }

            (panel as IPanel <Form>)?.PanelContainer?.Close();
        }
Beispiel #38
0
        public void Load(IPanel parent)
        {
            _parent  = parent;
            _panelId = parent.TreeNode.GetRoot().ID;
            var factory = _game.Factory;

            _searchBox             = factory.UI.GetTextBox("GameDebugTreeSearchBox", 0f, parent.Height, parent, "Search...", width: parent.Width, height: 30f);
            _searchBox.RenderLayer = _layer;
            _searchBox.Border      = AGSBorders.SolidColor(Colors.Green, 2f);
            _searchBox.Tint        = Colors.Transparent;
            _searchBox.Pivot       = new PointF(0f, 1f);
            _searchBox.GetComponent <ITextComponent>().PropertyChanged += onSearchPropertyChanged;

            _scrollingPanel             = factory.UI.GetPanel("GameDebugTreeScrollingPanel", parent.Width, parent.Height - _searchBox.Height, 0f, 0f, parent);
            _scrollingPanel.RenderLayer = _layer;
            _scrollingPanel.Pivot       = new PointF(0f, 0f);
            _scrollingPanel.Tint        = Colors.Transparent;
            _scrollingPanel.Border      = AGSBorders.SolidColor(Colors.Green, 2f);
            const float lineHeight = 42f;

            _treePanel             = factory.UI.GetPanel("GameDebugTreePanel", 1f, 1f, 0f, _scrollingPanel.Height - lineHeight, _scrollingPanel);
            _treePanel.Tint        = Colors.Transparent;
            _treePanel.RenderLayer = _layer;
            _treeView = _treePanel.AddComponent <ITreeViewComponent>();
            _treeView.OnNodeSelected.Subscribe(onTreeNodeSelected);
            factory.UI.CreateScrollingPanel(_scrollingPanel);
            parent.GetComponent <IScaleComponent>().PropertyChanged += (_, args) =>
            {
                if (args.PropertyName != nameof(IScaleComponent.Height))
                {
                    return;
                }
                _scrollingPanel.Image = new EmptyImage(_scrollingPanel.Width, parent.Height - _searchBox.Height);
                _treePanel.Y          = _scrollingPanel.Height - lineHeight;
                _searchBox.Y          = _parent.Height;
            };
        }
Beispiel #39
0
        public void SetLevelOfPanel(UILevel level, IPanel panel)
        {
            switch (level)
            {
            case UILevel.Bg:
                panel.Transform.SetParent(UIKit.Root.BgTrans);
                break;

            case UILevel.AnimationUnderPage:
                panel.Transform.SetParent(UIKit.Root.AnimationUnderTrans);
                break;

            case UILevel.Common:
                panel.Transform.SetParent(UIKit.Root.CommonTrans);
                break;

            case UILevel.AnimationOnPage:
                panel.Transform.SetParent(UIKit.Root.AnimationOnTrans);
                break;

            case UILevel.PopUI:
                panel.Transform.SetParent(UIKit.Root.PopUITrans);
                break;

            case UILevel.Const:
                panel.Transform.SetParent(UIKit.Root.ConstTrans);
                break;

            case UILevel.Toast:
                panel.Transform.SetParent(UIKit.Root.ToastTrans);
                break;

            case UILevel.Forward:
                panel.Transform.SetParent(UIKit.Root.ForwardTrans);
                break;
            }
        }
Beispiel #40
0
        public void DispatchEvent(EventBase evt, IPanel panel)
        {
            if (panel != null)
            {
                if (panel.focusController.GetLeafFocusedElement() != null)
                {
                    IMGUIContainer imguiContainer = panel.focusController.GetLeafFocusedElement() as IMGUIContainer;

                    if (imguiContainer != null)
                    {
                        if (!evt.Skip(imguiContainer) && imguiContainer.SendEventToIMGUI(evt))
                        {
                            evt.StopPropagation();
                            evt.PreventDefault();
                        }
                    }
                    else
                    {
                        evt.target = panel.focusController.GetLeafFocusedElement();
                        EventDispatchUtilities.PropagateEvent(evt);
                    }
                }
                else
                {
                    evt.target = panel.visualTree;
                    EventDispatchUtilities.PropagateEvent(evt);

                    if (!evt.isPropagationStopped)
                    {
                        EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                    }
                }
            }

            evt.propagateToIMGUI = false;
            evt.stopDispatch     = true;
        }
Beispiel #41
0
        public void addPanel(IPanel panel, bool recursive = true)
        {
            Dictionary<string, object> insertVals = new Dictionary<string, object>();

            insertVals["id_project"] = CE.project.id;
            if(panel.viewAttr.ContainsKey("id_holder")){
                insertVals["id_holder"] = panel.viewAttr["id_holder"];
            }
            insertVals["id_type"] = panel.typeId;
            //insertVals["type_name"] = panel.typeName;     // duplicite - only in panel object
            insertVals["table_name"] = panel.tableName;
            if(panel.parent != null)
                insertVals["id_parent"] = panel.parent.panelId;
            if (panel.PKColNames != null)
            {
                insertVals["pk_column_names"] = String.Join(",", panel.PKColNames);
            }
            StartTransaction();
            panel.SetCreationId(NextId("panels"));
            query("INSERT INTO panels ", insertVals);
            CommitTransaction();

            foreach (IField field in panel.fields) {
                field.panelId = panel.panelId;
                AddField(field);
            }

            RewritePanelProperties(panel);

            if (recursive) {
                foreach (IPanel child in panel.children)
                {
                    child.SetParentPanel(panel);
                    addPanel(child, true);
                }
            }
        }
Beispiel #42
0
        public void Execute(IPanel panel)
        {
            if (panel == null)
            {
                throw new ArgumentNullException("panel");
            }

            var tabContainer = panel.Parent as TabContainer;

            if (tabContainer != null)
            {
                if (tabContainer.Parent is IPanelContainer)
                {
                    var stackContainer = new StackContainer
                    {
                        Header = new PanelHeader
                        {
                            Text = "Stack Container"
                        },
                        Orientation = FindOptimalStackContainerOrientation(tabContainer)
                                      ?? Orientation.Horizontal
                    };
                    stackContainer.Activate();

                    var parentContainer   = tabContainer.Parent as IPanelContainer;
                    int tabContainerIndex = parentContainer.Presenters.IndexOf(tabContainer);
                    var newTabContainer   = (TabContainer)tabContainer.Clone();

                    parentContainer.Shutdown(tabContainer, b => { });

                    stackContainer.Presenters.Add(tabContainer);
                    stackContainer.Presenters.Add(newTabContainer);

                    parentContainer.Presenters.Insert(tabContainerIndex, stackContainer);
                }
            }
        }
        private IPanel CreateButtonPanel()
        {
            IPanel            buttonPanel   = _controlFactory.CreatePanel();
            const int         buttonWidth   = 75;
            const int         buttonHeight  = 38;
            var               buttonSize    = new Size(buttonWidth, buttonHeight);
            FlowLayoutManager layoutManager = new FlowLayoutManager(buttonPanel, _controlFactory);

            layoutManager.Alignment = FlowLayoutManager.Alignments.Right;

            CancelButton          = _controlFactory.CreateButton("Cancel");
            CancelButton.Click   += this.CancelButton_Click;
            CancelButton.Size     = new Size(75, 38);
            CancelButton.TabIndex = 3;
            layoutManager.AddControl(CancelButton);

            FinishButton          = _controlFactory.CreateButton("Finish");
            FinishButton.Click   += this.FinishButton_Click;
            FinishButton.Size     = buttonSize;
            FinishButton.TabIndex = 2;
            layoutManager.AddControl(FinishButton);

            NextButton          = _controlFactory.CreateButton("Next");
            NextButton.Click   += this.NextButton_Click;
            NextButton.Size     = new Size(75, 38);
            NextButton.TabIndex = 1;
            layoutManager.AddControl(NextButton);

            PreviousButton          = _controlFactory.CreateButton("Previous");
            PreviousButton.Click   += this.PreviousButton_Click;
            PreviousButton.Size     = new Size(75, 38);
            PreviousButton.TabIndex = 0;
            layoutManager.AddControl(PreviousButton);


            return(buttonPanel);
        }
        public void setView(IPanel value)
        {
            if (_view != null)
            {
                _view.removeEventListener(EventX.READY, preViewReadyHandler);
                bindSetViewEvent(_view, false);
            }

            _view = value;

            if (_view != null)
            {
                if (_view is IAsync)
                {
                    IAsync asyncView = _view as IAsync;
                    if (asyncView.isReady == false)
                    {
                        _view.addEventListener(EventX.READY, preViewReadyHandler);
                        return;
                    }
                }
                preViewReadyHandler(null);            //此句调用肯定会报错
            }
        }
        public List <EventDebuggerCallTrace> GetCalls(IPanel panel, EventDebuggerEventRecord evt = null)
        {
            List <EventDebuggerCallTrace> list = null;

            if (m_EventCalledObjects.ContainsKey(panel))
            {
                list = m_EventCalledObjects[panel];
            }

            if ((evt != null) && (list != null))
            {
                List <EventDebuggerCallTrace> filteredList = new List <EventDebuggerCallTrace>();
                foreach (var callObject in list)
                {
                    if (callObject.eventBase.eventId == evt.eventId)
                    {
                        filteredList.Add(callObject);
                    }
                }

                list = filteredList;
            }
            return(list);
        }
Beispiel #46
0
		public async Task LoadAsync(IGame game)
		{
			_game = game;
			_game.Events.OnSavedGameLoad.Subscribe((sender, e) => onSaveGameLoaded());
			IGameFactory factory = game.Factory;

			_panel = await factory.UI.GetPanelAsync("Inventory Panel", "../../Assets/Gui/DialogBox/inventory.bmp", 160f, 100f);
			_panel.Anchor = new PointF (0.5f, 0.5f);
			_panel.Visible = false;

			await loadButton("Inventory Look Button", factory, "magnify/", 5f, RotatingCursorScheme.LOOK_MODE);
			await loadButton("Invntory Point Button", factory, "upLeft/", 27f, MouseCursors.POINT_MODE);
			IButton okButton = await loadButton("Inventory Ok Button", factory, "ok/", 49f);
			IButton upButton = await loadButton("Inventory Up Button", factory, "up/", 93f);
			IButton downButton = await loadButton("Inventory Down Button", factory, "down/", 115f);

			okButton.OnMouseClick(Hide, _game);

			_invWindow = factory.Inventory.GetInventoryWindow("Inventory Window", 124f, 88f, 40f, 22f, 7f, 30f);
			_invWindow.TreeNode.SetParent(_panel.TreeNode);

			upButton.OnMouseClick(_invWindow.ScrollUp, _game);
			downButton.OnMouseClick(_invWindow.ScrollDown, _game);
		}
Beispiel #47
0
        /// <summary>
        /// Sets the panel. When panel is null, welcome panel is shown. Depending on current panel and new panel stacking may happen
        /// </summary>
        /// <param name="panel">Panel.</param>
        public bool SetPanel(IPanel panel)
        {
            if (panel == null)
            {
                return(App.Current.StateController.MoveToHome().Result);
            }

            if (currentPanel != null)
            {
                ((IPanel)currentPanel).OnUnload();
                centralbox.Remove(currentPanel);
            }
            Title = panel.Title;
            panel.OnLoad();
            currentPanel = (Widget)panel;
            centralbox.PackStart(currentPanel, true, true, 0);
            currentPanel.Show();
            // FIXME: Remove this once everything uses the ITool implementation correctly
            if (panel is WelcomePanel)
            {
                ResetGUI();
            }
            return(true);
        }
Beispiel #48
0
        /// <summary>
        /// Constructs a <see cref="MainTitleIconControlVWG"/>
        /// </summary>
        public MainTitleIconControlVWG(IControlFactory controlFactory)
        {
            if (controlFactory == null)
            {
                throw new ArgumentNullException("controlFactory");
            }
            _controlFactory = controlFactory;
            _panel          = _controlFactory.CreatePanel();
            ((PanelVWG)_panel).BackgroundImage = @"Images.headergradient.png";

            _panel.BackColor = Color.Transparent;
            _panel.Dock      = Habanero.Faces.Base.DockStyle.Top;

            _panel.Height = 23;
            this.Size     = new Size(_panel.Width, _panel.Height);
            _icon         = _controlFactory.CreateLabel();
            ((LabelVWG)_icon).BackgroundImage = "";
            _icon.BackColor = Color.Transparent;
            ((LabelVWG)_icon).BackgroundImageLayout = ImageLayout.Center;
            _icon.Dock = Habanero.Faces.Base.DockStyle.Left;
            _icon.Size = new Size(20, 20);

            _title           = _controlFactory.CreateLabel();
            _title.Font      = new Font("Verdana", 10);
            _title.Dock      = Habanero.Faces.Base.DockStyle.Fill;
            _title.BackColor = Color.Transparent;
            _title.TextAlign = ContentAlignment.MiddleLeft;
            _title.ForeColor = Color.White;

            _panel.Controls.Add(_title);
            _panel.Controls.Add(_icon);

            this.Dock = DockStyleVWG.GetDockStyle(DockStyle.Top);
            this.Controls.Add((PanelVWG)_panel);
            this.Height = 23;
        }
Beispiel #49
0
        /// <summary>
        /// Creates and shows the specified scanner
        /// </summary>
        /// <param name="panelClass">type of the scanner</param>
        /// <returns>true on success</returns>
        private bool createAndShowScanner(String panelClass, Form form)
        {
            bool retVal = true;

            form.Invoke(new MethodInvoker(delegate()
            {
                IPanel panel = Context.AppPanelManager.CreatePanel(panelClass) as IPanel;

                if (panel != null)
                {
                    _disableAllButtons         = true;
                    _dimScanner                = false;
                    IScannerPanel scannerPanel = panel as IScannerPanel;
                    scannerPanel.ScannerCommon.PositionSizeController.DockScanner(form.Handle, Windows.WindowPosition.TopRight);
                    Context.AppPanelManager.Show(form as IPanel, panel);
                }
                else
                {
                    retVal = false;
                }
            }));

            return(retVal);
        }
        public void TestCollapseAll()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel content1 = GetControlFactory().CreatePanel();
            IPanel content2 = GetControlFactory().CreatePanel();
            IPanel content3 = GetControlFactory().CreatePanel();

            control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2 = control.AddControl(content2, "", 53);

            control.AddControl(content3, "", 53);
            control.AllCollapsed = false;
            //---------------Assert Precondition----------------
            foreach (ICollapsiblePanel collapsiblePanel in control.Controls)
            {
                Assert.IsTrue(collapsiblePanel.Pinned);
                Assert.IsFalse(collapsiblePanel.Collapsed);
                Assert.AreEqual(collapsiblePanel.ExpandedHeight, collapsiblePanel.Height);
            }
            //---------------Execute Test ----------------------
            control.AllCollapsed = true;

            //---------------Execute Test ----------------------

            //---------------Test Result -----------------------
            Assert.AreEqual(3, control.Controls.Count);
            foreach (ICollapsiblePanel collapsiblePanel in control.Controls)
            {
                Assert.IsFalse(collapsiblePanel.Pinned);
                Assert.IsTrue(collapsiblePanel.Collapsed);
                Assert.Less(collapsiblePanel.Height, collapsiblePanel.ExpandedHeight);
                Assert.AreNotEqual(collapsiblePanel2.ExpandedHeight, collapsiblePanel2.Height);
            }
            //---------------Tear down -------------------------
        }
 /// <summary>
 /// Fires OnNavigateTo for the panel
 /// </summary>
 /// <param name="panel"></param>
 private void FireOnNavigateTo(IPanel panel)
 {
     try
     {
         // Tell the panel it is prime time!
         panel.OnNavigatingTo();
     }
     catch (Exception e)
     {
         App.BaconMan.MessageMan.DebugDia("OnNavigatingTo failed!", e);
     }
 }
Beispiel #52
0
 public int insertPanel(IPanel panel, DataRow values)
 {
     return query("INSERT INTO " + panel.tableName + " ", values);
 }
        public PanelManager(IMainPage main, IPanel startingPanel = null)
        {
            this.InitializeComponent();

            // Create
            m_mainPage = main;

            // Set the initial panel size size
            OnScreenSizeChanged((int)Window.Current.Bounds.Width, true);
            Window.Current.SizeChanged += Windows_SizeChanged;

            // Set the starting panel
            if (startingPanel != null)
            {
                startingPanel.PanelSetup(this, new Dictionary<string, object>());
                FireOnNavigateTo(startingPanel);
                m_panelStack.Add(new StackItem() { Panel = startingPanel, Id = "StartingPanel" });
                ui_contentRoot.Children.Add((UserControl)startingPanel);
            }

            // Set the back button
            UpdateBackButton();

            // Register for app suspend commands
            App.BaconMan.OnSuspending += OnSuspending;
            App.BaconMan.OnResuming += OnResuming;

            // Register for memory pressure callbacks
            App.BaconMan.MemoryMan.OnMemoryCleanUpRequest += MemoryMan_OnMemoryCleanUpRequest;
        }
 /// <summary>
 /// Fires OnReduceMemory for the panel
 /// </summary>
 /// <param name="panel"></param>
 private void FireOnReduceMemory(IPanel panel)
 {
     try
     {
         // Tell the panel to reduce memory.
         panel.OnReduceMemory();
     }
     catch (Exception e)
     {
         App.BaconMan.MessageMan.DebugDia("FireOnReduceMemory failed!", e);
     }
 }
 /// <summary>
 /// Fires OnCleanupPanel for the panel
 /// </summary>
 /// <param name="panel"></param>
 private void FireOnCleanupPanel(IPanel panel)
 {
     try
     {
         // Tell the panel to clean up.
         panel.OnCleanupPanel();
     }
     catch (Exception e)
     {
         App.BaconMan.MessageMan.DebugDia("FireOnCleanupPanel failed!", e);
     }
 }
            /// <summary>
            /// Constructor that sets up the error message form
            /// </summary>
            public CollapsibleExceptionNotifyForm(Exception ex, string furtherMessage, string title)
            {
                this._exception = ex;

                this._summary = _controlFactory.CreatePanel();
                this._summary.Text = title;
                this._summary.Height = SUMMARY_HEIGHT;
                ITextBox messageTextBox = GetSimpleMessage(ex.Message);
                messageTextBox.ScrollBars = ScrollBars.Vertical;
                ILabel messageLabel = GetErrorLabel(furtherMessage);
                BorderLayoutManager summaryManager = _controlFactory.CreateBorderLayoutManager(_summary);
                summaryManager.AddControl(messageLabel, BorderLayoutManager.Position.North);
                summaryManager.AddControl(messageTextBox, BorderLayoutManager.Position.Centre);

                this._buttonsOK = _controlFactory.CreateButtonGroupControl();
                this._buttonsOK.AddButton("&OK", new EventHandler(OKButtonClickHandler));

                this._buttonsDetail = _controlFactory.CreateButtonGroupControl();
                this._buttonsDetail.AddButton("Email Error", EmailErrorClickHandler);
                this._moreDetailButton = _buttonsDetail.AddButton("More Detail »", MoreDetailClickHandler);
                this._buttonsDetail.Width = 2 * (_moreDetailButton.Width + 9);
                this._fullDetailsVisible = false;

                this.SetFullDetailsPanel();
                this.LayoutForm();

                this.Text = title;
                this.Width = 600;
                this.Height = SUMMARY_HEIGHT + BUTTONS_HEIGHT + 16;
                this.StartPosition = FormStartPosition.CenterScreen;
                //this.Resize += ResizeForm;
            }
 /// <summary>
 /// Fires OnNavigateFrom for the panel
 /// </summary>
 /// <param name="panel"></param>
 private void FireOnNavigateFrom(IPanel panel)
 {
     try
     {
         // Tell the panel it is leaving
         panel.OnNavigatingFrom();
     }
     catch (Exception e)
     {
         App.BaconMan.MessageMan.DebugDia("OnNavigatingFrom failed!", e);
     }
 }
 /// <summary>
 /// Returns the type of panel this is.
 /// </summary>
 /// <param name="panel"></param>
 /// <returns></returns>
 private PanelType GetPanelType(IPanel panel)
 {
     return (panel as SubredditPanel) == null ? PanelType.ContentPanel : PanelType.SubredditList;
 }
 protected FlowLayoutManager GetLayoutManager(IPanel buttonPanel)
 {
     return new FlowLayoutManager(buttonPanel, ControlFactory)
                {Alignment = FlowLayoutManager.Alignments.Right};
 }
            /// <summary>
            /// Sets up the panel that shows the error details
            /// </summary>
            private void SetFullDetailsPanel()
            {
                _fullDetail = _controlFactory.CreatePanel();
                _fullDetail.Text = "Error Detail";

                _errorDetails = _controlFactory.CreateTextBox();
                _errorDetails.Text = ExceptionUtilities.GetExceptionString(_exception, 0, false);
                _errorDetails.Multiline = true;
                _errorDetails.ScrollBars = ScrollBars.Both;
                _showStackTrace = _controlFactory.CreateCheckBox();
                _showStackTrace.Text = "&Show stack trace";
                _showStackTrace.CheckedChanged += ShowStackTraceClicked;

                var manager = _controlFactory.CreateBorderLayoutManager(_fullDetail);
                manager.AddControl(_errorDetails, BorderLayoutManager.Position.Centre);
                var chkPanel = _controlFactory.CreatePanel();
                var vgap = LayoutManager.DefaultGapSize + LayoutManager.DefaultBorderSize;
                if (GlobalUIRegistry.UIStyleHints != null)
                    vgap = GlobalUIRegistry.UIStyleHints.LayoutHints.DefaultVerticalGap + GlobalUIRegistry.UIStyleHints.LayoutHints.DefaultBorderSize;
                chkPanel.Height = _showStackTrace.Height + 2 * vgap;
                var chkManager = _controlFactory.CreateBorderLayoutManager(chkPanel);
                chkManager.AddControl(_showStackTrace, BorderLayoutManager.Position.West);
                manager.AddControl(chkPanel, BorderLayoutManager.Position.South);
            }