Esempio n. 1
0
        private void Button_Click(object sender, EventArgs e)
        {
            var idx = GetPropertyIndexForView(sender as MaterialButton);

            if (idx >= 0)
            {
                PropertyClicked?.Invoke(this, ClickType.Button, idx, -1, -1);
            }
        }
Esempio n. 2
0
        private void ListView_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                var listView = sender as PropertyPageListView;
                var hitTest  = listView.HitTest(e.Location);

                if (hitTest.Item != null)
                {
                    var propIdx = GetPropertyIndexForControl(sender as Control);
                    PropertyClicked?.Invoke(this, ClickType.Right, propIdx, hitTest.Item.Index, hitTest.Item.SubItems.IndexOf(hitTest.SubItem));
                }
            }
        }
Esempio n. 3
0
        private void ListView_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            var listView = sender as PropertyPageListView;
            var hitTest  = listView.HitTest(e.Location);

            if (hitTest.Item != null)
            {
                for (int i = 0; i < properties.Count; i++)
                {
                    if (properties[i].control == sender)
                    {
                        PropertyClicked?.Invoke(this, ClickType.Double, i, hitTest.Item.Index, hitTest.Item.SubItems.IndexOf(hitTest.SubItem));
                    }
                }
            }
        }
Esempio n. 4
0
        private void ListView_ButtonPressed(object sender, int itemIndex, int columnIndex)
        {
            var propIdx = GetPropertyIndexForControl(sender as Control);

            PropertyClicked?.Invoke(this, ClickType.Button, propIdx, itemIndex, columnIndex);
        }
Esempio n. 5
0
        private void Button_Click(object sender, EventArgs e)
        {
            var propIdx = GetPropertyIndexForControl(sender as Control);

            PropertyClicked?.Invoke(this, ClickType.Button, propIdx, -1, -1);
        }
Esempio n. 6
0
        void TreeView_ButtonPressEvent(object o, ButtonPressEventArgs args)
        {
            for (int i = 0; i < properties.Count; i++)
            {
                var prop = properties[i];

                if (prop.control is ScrolledWindow scroll)
                {
                    if (scroll.Child is TreeView treeView)
                    {
                        if (treeView.GetPathAtPos((int)args.Event.X, (int)args.Event.Y, out var path, out var col, out var ix, out var iy))
                        {
                            var columnIndex = Array.IndexOf(treeView.Columns, col);
                            var columnDesc  = prop.columns[columnIndex];

                            if (columnDesc.Enabled)
                            {
                                if (columnDesc.Type == ColumnType.Slider && args.Event.Button == 1)
                                {
                                    var area = treeView.GetCellArea(path, col);

                                    dragPath          = path;
                                    dragColumn        = col;
                                    dragPropertyIndex = i;
                                    dragRowIndex      = path.Indices[0];
                                    dragColIndex      = columnIndex;

                                    var percent = (int)Utils.Clamp(Math.Round((args.Event.X - area.Left) / (float)area.Width * 100.0f), 0.0f, 100.0f);

                                    if (treeView.Model.GetIter(out var iter, path))
                                    {
                                        treeView.Model.SetValue(iter, columnIndex, percent);
                                    }

                                    var propIdx = GetPropertyIndex(treeView.Parent);
                                    PropertyChanged?.Invoke(this, propIdx, dragRowIndex, dragColIndex, percent);
                                }
                                else if (columnDesc.Type == ColumnType.Button)
                                {
                                    var cellArea   = treeView.GetBackgroundArea(path, col);
                                    var button     = treeView.Columns[columnIndex].CellRenderers[0] as CellRendererButton;
                                    var buttonRect = button.GetButtonRectangle(cellArea);

                                    if (buttonRect.Contains((int)args.Event.X, (int)args.Event.Y))
                                    {
                                        PropertyClicked?.Invoke(this, ClickType.Button, i, path.Indices[0], columnIndex);
                                    }
                                }
                                else if (columnDesc.Type == ColumnType.DropDown)
                                {
                                    // Open the combo box right away, otherwise we need to click twice.
                                    var column = treeView.Columns[columnIndex];
                                    var combo  = column.CellRenderers[0] as CellRendererCombo;
                                    treeView.SetCursorOnCell(path, column, combo, true);
                                }
                                else
                                {
                                    if (args.Event.Type == EventType.TwoButtonPress)
                                    {
                                        PropertyClicked?.Invoke(this, ClickType.Double, i, path.Indices[0], columnIndex);
                                    }
                                    else if (args.Event.Button == 3)
                                    {
                                        PropertyClicked?.Invoke(this, ClickType.Right, i, path.Indices[0], columnIndex);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Esempio n. 7
0
        void Button_Clicked(object sender, EventArgs e)
        {
            var propIdx = GetPropertyIndex(sender as Widget);

            PropertyClicked?.Invoke(this, ClickType.Button, propIdx, -1, -1);
        }