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); } }
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)); } } }
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)); } } } }
private void ListView_ButtonPressed(object sender, int itemIndex, int columnIndex) { var propIdx = GetPropertyIndexForControl(sender as Control); PropertyClicked?.Invoke(this, ClickType.Button, propIdx, itemIndex, columnIndex); }
private void Button_Click(object sender, EventArgs e) { var propIdx = GetPropertyIndexForControl(sender as Control); PropertyClicked?.Invoke(this, ClickType.Button, propIdx, -1, -1); }
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); } } } } } } } }
void Button_Clicked(object sender, EventArgs e) { var propIdx = GetPropertyIndex(sender as Widget); PropertyClicked?.Invoke(this, ClickType.Button, propIdx, -1, -1); }