Logo Search packages:      
Sourcecode: wine-unstable version File versions  Download package

taskmgr.h

/*
 *  ReactOS Task Manager
 *
 *  taskmgr.h
 *
 *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp@reactos.org>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#ifndef __TASKMGR_H__
#define __TASKMGR_H__

#ifdef __cplusplus
extern "C" {
#endif

#ifdef _MSC_VER
/*MF
typedef struct _IO_COUNTERS {
      ULONGLONG  ReadOperationCount;
      ULONGLONG  WriteOperationCount;
      ULONGLONG  OtherOperationCount;
      ULONGLONG ReadTransferCount;
      ULONGLONG WriteTransferCount;
      ULONGLONG OtherTransferCount;
} IO_COUNTERS, *PIO_COUNTERS;
*/
#endif /* _MSC_VER */

#include "resource.h"

#define RUN_APPS_PAGE
#define RUN_PROC_PAGE
#define RUN_PERF_PAGE

#define STATUS_WINDOW   2001

typedef struct
{
      /* Window size & position settings */
      BOOL  Maximized;
      int   Left;
      int   Top;
      int   Right;
      int   Bottom;

      /* Tab settings */
      int   ActiveTabPage;

      /* Options menu settings */
      BOOL  AlwaysOnTop;
      BOOL  MinimizeOnUse;
      BOOL  HideWhenMinimized;
      BOOL  Show16BitTasks;

      /* Update speed settings */
      /* How many half-seconds in between updates (i.e. 0 - Paused, 1 - High, 2 - Normal, 4 - Low) */
      int   UpdateSpeed; 

      /* Applications page settings */
      BOOL  View_LargeIcons;
      BOOL  View_SmallIcons;
      BOOL  View_Details;

      /* Processes page settings */
      BOOL  ShowProcessesFromAllUsers; /* Server-only? */
      BOOL  Column_ImageName;
      BOOL  Column_PID;
      BOOL  Column_CPUUsage;
      BOOL  Column_CPUTime;
      BOOL  Column_MemoryUsage;
      BOOL  Column_MemoryUsageDelta;
      BOOL  Column_PeakMemoryUsage;
      BOOL  Column_PageFaults;
      BOOL  Column_USERObjects;
      BOOL  Column_IOReads;
      BOOL  Column_IOReadBytes;
      BOOL  Column_SessionID; /* Server-only? */
      BOOL  Column_UserName; /* Server-only? */
      BOOL  Column_PageFaultsDelta;
      BOOL  Column_VirtualMemorySize;
      BOOL  Column_PagedPool;
      BOOL  Column_NonPagedPool;
      BOOL  Column_BasePriority;
      BOOL  Column_HandleCount;
      BOOL  Column_ThreadCount;
      BOOL  Column_GDIObjects;
      BOOL  Column_IOWrites;
      BOOL  Column_IOWriteBytes;
      BOOL  Column_IOOther;
      BOOL  Column_IOOtherBytes;
      int   ColumnOrderArray[25];
      int   ColumnSizeArray[25];
      int   SortColumn;
      BOOL  SortAscending;

      /* Performance page settings */
      BOOL  CPUHistory_OneGraphPerCPU;
      BOOL  ShowKernelTimes;

} TASKMANAGER_SETTINGS, *LPTASKMANAGER_SETTINGS;

/* Global Variables: */
extern      HINSTANCE   hInst;                                    /* current instance */
extern      HWND        hMainWnd;                           /* Main Window */
extern      HWND        hStatusWnd;                         /* Status Bar Window */
extern      HWND        hTabWnd;                            /* Tab Control Window */
extern      int               nMinimumWidth;                      /* Minimum width of the dialog (OnSize()'s cx) */
extern      int               nMinimumHeight;                     /* Minimum height of the dialog (OnSize()'s cy) */
extern      int               nOldWidth;                          /* Holds the previous client area width */
extern      int               nOldHeight;                         /* Holds the previous client area height */
extern      TASKMANAGER_SETTINGS    TaskManagerSettings;

extern WNDPROC OldProcessListWndProc;
extern WNDPROC OldGraphWndProc;

extern HWND hProcessPage;                       /* Process List Property Page */
extern HWND hProcessPageListCtrl;               /* Process ListCtrl Window */
extern HWND hProcessPageHeaderCtrl;             /* Process Header Control */
extern HWND hProcessPageEndProcessButton;       /* Process End Process button */
extern HWND hProcessPageShowAllProcessesButton;       /* Process Show All Processes checkbox */
extern HWND hPerformancePage;                   /* Performance Property Page */

extern HWND hApplicationPage;                /* Application List Property Page */
extern HWND hApplicationPageListCtrl;        /* Application ListCtrl Window */
extern HWND hApplicationPageEndTaskButton;   /* Application End Task button */
extern HWND hApplicationPageSwitchToButton;  /* Application Switch To button */
extern HWND hApplicationPageNewTaskButton;   /* Application New Task button */


/* Forward declarations of functions included in this code module: */
void FillSolidRect(HDC hDC, LPCRECT lpRect, COLORREF clr);
void Font_DrawText(HDC hDC, LPWSTR lpwszText, int x, int y);

#define OPTIONS_MENU_INDEX    1

void TaskManager_OnOptionsAlwaysOnTop(void);
void TaskManager_OnOptionsMinimizeOnUse(void);
void TaskManager_OnOptionsHideWhenMinimized(void);
void TaskManager_OnOptionsShow16BitTasks(void);
void TaskManager_OnFileNew(void);

LPWSTR GetLastErrorText( LPWSTR lpwszBuf, DWORD dwSize );

void OnAbout(void);

BOOL AreDebugChannelsSupported(void);

void ProcessPage_OnSetAffinity(void);
void ProcessPage_OnDebug(void);
void ProcessPage_OnEndProcess(void);
void ProcessPage_OnEndProcessTree(void);
void ProcessPage_OnSetPriorityRealTime(void);
void ProcessPage_OnSetPriorityHigh(void);
void ProcessPage_OnSetPriorityAboveNormal(void);
void ProcessPage_OnSetPriorityNormal(void);
void ProcessPage_OnSetPriorityBelowNormal(void);
void ProcessPage_OnSetPriorityLow(void);
void ProcessPage_OnDebugChannels(void);

#define WM_ONTRAYICON   WM_USER + 5

BOOL TrayIcon_ShellAddTrayIcon(void);
BOOL TrayIcon_ShellRemoveTrayIcon(void);
BOOL TrayIcon_ShellUpdateTrayIcon(void);

void PerformancePage_OnViewShowKernelTimes(void);
void PerformancePage_OnViewCPUHistoryOneGraphAll(void);
void PerformancePage_OnViewCPUHistoryOneGraphPerCPU(void);

void ApplicationPage_OnViewLargeIcons(void);
void ApplicationPage_OnViewSmallIcons(void);
void ApplicationPage_OnViewDetails(void);
void ApplicationPage_OnWindowsTileHorizontally(void);
void ApplicationPage_OnWindowsTileVertically(void);
void ApplicationPage_OnWindowsMinimize(void);
void ApplicationPage_OnWindowsMaximize(void);
void ApplicationPage_OnWindowsCascade(void);
void ApplicationPage_OnWindowsBringToFront(void);
void ApplicationPage_OnSwitchTo(void);
void ApplicationPage_OnEndTask(void);
void ApplicationPage_OnGotoProcess(void);

void RefreshApplicationPage(void);
void RefreshPerformancePage(void);
void RefreshProcessPage(void);

INT_PTR CALLBACK ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK Graph_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK ProcessListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK ProcessPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK PerformancePageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

#ifdef __cplusplus
}
#endif

#endif /* __TASKMGR_H__ */

Generated by  Doxygen 1.6.0   Back to index