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