private void bitmapWidget_EvtActuated(object sender, WidgetEventArgs e) { Widget widget = e.SourceWidget; Log.Debug("widget=" + widget.ToString()); if (widget is PictureBoxWidget) { PictureBoxWidget pictureBoxWidget = widget as PictureBoxWidget; TaskData taskData = pictureBoxWidget.UserData as TaskData; Log.Debug("Bringing selected window to foreground hWnd=" + taskData.Handle + " title=" + taskData.Title.ToString()); setTitle(widget); _selectedTask = null; Windows.ActivateWindow(taskData.Handle); _selectedTask = taskData; } else { Log.Debug("actuated non-BitmapWidget"); } }
private void setTitle(Widget widget) { if (widget is PictureBoxWidget) { PictureBoxWidget pictureBoxWidget = widget as PictureBoxWidget; TaskData taskData = pictureBoxWidget.UserData as TaskData; Log.Debug("Setting title to " + taskData.Title.ToString()); Windows.SetText(Title, taskData.Title.ToString()); } else { Windows.SetText(Title, widget.GetText()); } }
private void PopulateTLP(List <EnumWindows.WindowInfo> windowList) { Log.Debug("Starting to populate table layout panel..."); int appCount = windowList.Count; if (appCount == 0) { return; } int columnWidth; _widgetList = new List <PictureBoxWidget>(); // add rows and columns dtlp.ColumnCount = NumAppsPerRow; dtlp.RowCount = (int)Math.Ceiling((double)appCount / (double)NumAppsPerRow); columnWidth = ColumnWidth; dtlp.ColumnStyles.Clear(); // add each column for (int y = 0; y < NumAppsPerRow; y++) { dtlp.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, columnWidth)); } // start adding app icons // used to break out of loop once we have processed all the apps int i = 0; dtlp.RowStyles.Clear(); for (int x = 0; x < dtlp.RowCount; x++) { dtlp.RowStyles.Add(new RowStyle(SizeType.Absolute, RowHeight)); } for (int currentRow = 0, index = 0; currentRow < dtlp.RowCount; currentRow++) { for (int currentColumn = 0; currentColumn < NumAppsPerRow; currentColumn++) { PictureBox pbxAppIcon1 = new PictureBox(); pbxAppIcon1.Name = "ListItem" + index++; pbxAppIcon1.SizeMode = PictureBoxSizeMode.CenterImage; PictureBoxWidget pictureBoxWidget = _dialogCommon.GetWidgetManager().Layout.CreateWidget(typeof(PictureBoxWidget), pbxAppIcon1) as PictureBoxWidget; pictureBoxWidget.EvtActuated += new WidgetEventDelegate(bitmapWidget_EvtActuated); pictureBoxWidget.EvtHighlightOn += new HighlightOnDelegate(bitmapWidget_EvtHighlightOn); Log.Debug("Bitmap widget is " + ((pictureBoxWidget == null) ? "null" : "not null")); TaskData taskData = new TaskData(); taskData.Handle = windowList[i].Handle; taskData.Title = windowList[i].Title; pictureBoxWidget.UserData = taskData; IntPtr handle = windowList[i].Handle; Icon icon = EnumWindows.GetAppIcon(handle); if (icon == null) { Log.Debug("No app icon found for hWnd=" + handle.ToString() + " title=" + windowList[i].Title); Log.Debug("Loading default icon"); Image img = Image.FromFile(FileUtils.GetImagePath("taskSwitchdefaultIcon.bmp")); if (img != null) { pbxAppIcon1.Image = img; } } else { Log.Debug("Icon found for hWnd=" + handle.ToString() + " icon=" + icon.ToString() + " title=" + windowList[i].Title); pbxAppIcon1.Image = icon.ToBitmap(); } pbxAppIcon1.BorderStyle = BorderStyle.None; pbxAppIcon1.Anchor = AnchorStyles.None; pbxAppIcon1.Dock = DockStyle.Fill; pbxAppIcon1.SizeMode = PictureBoxSizeMode.StretchImage; dtlp.Controls.Add(pbxAppIcon1, currentColumn, currentRow); _widgetList.Add(pictureBoxWidget); // TODO: do something else with spare cells if (i < (appCount - 1)) { i++; } else { break; } } } #if FORCE_FIXED_TABLE_SIZE this.Size = new System.Drawing.Size(1000, 1000); #else int newFormWidth = FormWidthBase + (NumAppsPerRow * ColumnWidth); int newFormHeight = 20 + (FormHeightBase + Convert.ToInt32(Math.Ceiling(dtlp.RowCount * RowHeight))); Log.Debug("newFormWidth=" + newFormWidth + " newFormHeight=" + newFormHeight); _dialogCommon.Resize(new System.Drawing.Size(newFormWidth, newFormHeight)); onResize(); Log.Debug("form width=" + this.Size.Width.ToString() + " form height=" + this.Size.Height.ToString()); Log.Debug("title width=" + Title.Size.Width); #endif }