示例#1
0
文件: terminal.c 项目: LeSpocky/eis
/* ---------------------------------------------------------------------
 * TerminalVScrollHook
 * Terminal scroll bar mouse hook
 * ---------------------------------------------------------------------
 */
static void
TerminalVScrollHook(void* w, int sbcode, int pos)
{
	CUIWINDOW* win = (CUIWINDOW*) w;
	CUIRECT rc;
	int sbpos, range;
	
	CUI_USE_ARG(pos);

	WindowGetClientRect(win, &rc);
	sbpos = WindowGetVScrollPos(win);
	range = WindowGetVScrollRange(win);

	switch(sbcode)
	{
	case SB_LINEUP:
		if (sbpos > 0)
		{
			WindowSetVScrollPos(win, sbpos - 1);
			WindowInvalidate(win);
		}
		break;
	case SB_LINEDOWN:
		if (sbpos < range)
		{
			WindowSetVScrollPos(win, sbpos + 1);
			WindowInvalidate(win);
		}
		break;
	case SB_PAGEUP:
		if (sbpos > 0)
		{
			sbpos -= (rc.H - 1);
			sbpos = (sbpos < 0) ? 0 : sbpos;
			WindowSetVScrollPos(win, sbpos);
			WindowInvalidate(win);
		}
		break;
	case SB_PAGEDOWN:
		if (sbpos < range)
		{
			sbpos += (rc.H - 1);
			sbpos = (sbpos > range) ? range : sbpos;
			WindowSetVScrollPos(win, sbpos);
			WindowInvalidate(win);
		}
		break;
	case SB_THUMBTRACK:
		WindowInvalidate(win);
		break;
	}
}
示例#2
0
文件: combobox.c 项目: dreamsxin/eis
/* ---------------------------------------------------------------------
 * CbDropdownUpdate
 * Update listbox view
 * ---------------------------------------------------------------------
 */
static void
CbDropdownUpdate(CUIWINDOW* win)
{
	if (win->IsCreated)
	{
		WindowInvalidate(win);
	}
}
示例#3
0
文件: combobox.c 项目: dreamsxin/eis
/* ---------------------------------------------------------------------
 * ComboboxUpdate
 * Update combo view
 * ---------------------------------------------------------------------
 */
static void
ComboboxUpdate(CUIWINDOW* win)
{
	if (win->IsCreated)
	{
		WindowInvalidate(win);
	}
}
示例#4
0
文件: legend.c 项目: mingpen/OpenNT
void static OnPaint (HWND hWnd)
   {  // OnPaint
   PLEGEND        pLegend ;
   HDC            hDC ;
   PAINTSTRUCT    ps ;

   hDC = BeginPaint (hWnd, &ps) ;

   if (IsLegendLabelVisible ())
      {
      pLegend = LegendData (hWnd) ;
      DrawLegendLabel (pLegend, hDC, hWnd) ;
      }

   if (LBNumItems (pLegend->hWndItems) == 0)
      {
      WindowInvalidate(pLegend->hWndItems) ;
      }

   EndPaint (hWnd, &ps) ;
   }  // OnPaint
示例#5
0
文件: legend.c 项目: mingpen/OpenNT
void static OnSelectionChanged (HWND hWnd)
   {  // OnSelectionChanged
   PLEGEND        pLegend ;
   PGRAPHSTRUCT         pGraph ;
   int            iIndex ;


   pLegend = LegendData (hWnd) ;

   // set the new selected line
   iIndex = LBSelection (pLegend->hWndItems) ;

   if (iIndex == LB_ERR)
      return ;

   LegendSetCurrentLine (pLegend, iIndex) ;

   if (pLegend->iLineType == LineTypeChart)
      {
      pGraph = GraphData (hWndGraph) ;
      
      if (!PlayingBackLog())
         {
         // update the min, max, & avg of the current line
         UpdateValueBarData (pGraph) ;
         }

      // update the valuebar display
      StatusTimer (hWndGraphStatus, TRUE) ;

      // change the Current highlighted line if necessary
      if (pGraph && pGraph->HighLightOnOff)
         {
         WindowInvalidate (hWndGraphDisplay) ;
         }
      }
   }  // OnSelectionChanged
示例#6
0
文件: terminal.c 项目: LeSpocky/eis
/* ---------------------------------------------------------------------
 * TerminalKeyHook
 * Handle EVENT_KEY events
 * ---------------------------------------------------------------------
 */
static int
TerminalKeyHook(void* w, int key)
{
	CUIWINDOW*    win = (CUIWINDOW*) w;
	TERMINALDATA* data = (TERMINALDATA*) win->InstData;
	CUIRECT       rc;
	int           yrange;
	int           yscroll;

	if (!data) return FALSE;

	WindowGetClientRect(win, &rc);

	yscroll = WindowGetVScrollPos(win);
	yrange  = WindowGetVScrollRange(win);

	if (win->IsEnabled)
	{
		/* if the key is processed by the custom callback hook, we
		   are over and done with it, else processing continues */
		if (data->PreKeyHook)
		{
			if (data->PreKeyHook(data->PreKeyTarget, win, key))
			{
				return TRUE;
			}
		}

		switch(key)
		{
		case KEY_DOWN:
			if (yscroll < yrange)
			{
				WindowSetVScrollPos(win, yscroll + 1);
				WindowInvalidate(win);
				TerminalCursorOnOff(win);
			}
			return TRUE;
		case KEY_UP:
			if (yscroll > 0)
			{
				WindowSetVScrollPos(win, yscroll - 1);
				WindowInvalidate(win);
				TerminalCursorOnOff(win);
			}
			return TRUE;
		case KEY_NPAGE:
			if (yscroll < yrange)
			{
				yscroll += (rc.H - 1);
				if (yscroll > yrange)
				{
					yscroll = yrange;
				}
				WindowSetVScrollPos(win, yscroll);
				WindowInvalidate(win);
				TerminalCursorOnOff(win);
			}
			return TRUE;
		case KEY_PPAGE:
			if (yscroll > 0)
			{
				yscroll -= (rc.H - 1);
				if (yscroll < 0)
				{
					yscroll = 0;
				}
				WindowSetVScrollPos(win, yscroll);
				WindowInvalidate(win);
				TerminalCursorOnOff(win);
			}
			return TRUE;
		case KEY_HOME:
			if (yscroll > 0)
			{
				WindowSetVScrollPos(win, 0);
				WindowInvalidate(win);
				TerminalCursorOnOff(win);
			}
			return TRUE;
		case KEY_END:
			if (yscroll < yrange)
			{
				WindowSetVScrollPos(win, yrange);
				WindowInvalidate(win);
				TerminalCursorOnOff(win);
			}
			return TRUE;
		default:
			if (data->CoProc)
			{
				if ((key >= KEY_SPACE) && (key <= 255))
				{
					wchar_t c = (wchar_t) key;
					TerminalCoWrite(data->CoProc, &c, 1);
					return TRUE;
				}
				else if (key == KEY_RETURN)
				{
					TerminalCoWrite(data->CoProc, _T("\n"), 1);
					return TRUE;
				}
			}
			if (data->PostKeyHook)
			{
				if (data->PostKeyHook(data->PostKeyTarget, win, key))
				{
					return TRUE;
				}   
			}
		}
	}
	return FALSE;
}
示例#7
0
文件: perfmon.c 项目: mingpen/OpenNT
LRESULT APIENTRY MainWndProc (HWND hWnd, 
                              UINT message, 
                              DWORD wParam, 
                              LONG lParam)
   {
   LONG     lRetCode = 0L ;
   BOOL     bCallDefWinProc = FALSE ;

   switch (LOWORD (message))
      {  // switch
      case WM_LBUTTONDBLCLK:
         ShowPerfmonMenu (!Options.bMenubar) ;
         if (Options.bMenubar)
            {
            PrepareMenu (GetMenu (hWnd)) ;
            }
         break ;

	   case WM_COMMAND:
	      if (PerfmonCommand (hWnd,wParam,lParam))
	         return(0);
         else
            bCallDefWinProc = TRUE ;
         break;

      case WM_MENUSELECT:
         MenuBarHit (wParam) ;
         break ;

      case WM_NCHITTEST:
        /* if we have no title/menu bar, clicking and dragging the client
         * area moves the window. To do this, return HTCAPTION.
         * Note dragging not allowed if window maximized, or if caption
         * bar is present.
         */
        wParam = DefWindowProc(hWnd, message, wParam, lParam);
        if (!Options.bMenubar && 
            (wParam == HTCLIENT) &&
            !IsZoomed (hWndMain))
           return HTCAPTION ;
        else
           return wParam ;
        break ;

      
      case WM_SHOWWINDOW:
         PrepareMenu (GetMenu (hWnd)) ;
         break ;

      case WM_SIZE:
         OnSize (hWnd, LOWORD (lParam), HIWORD (lParam)) ;
         break ;

      case WM_GETMINMAXINFO:
         {
         MINMAXINFO   *pMinMax ;

         pMinMax = (MINMAXINFO *) lParam ;
         pMinMax->ptMinTrackSize.x = MinimumSize ;
         pMinMax->ptMinTrackSize.y = MinimumSize ;
         }
         break ;

      case WM_NOTIFY:
         {
            LPTOOLTIPTEXT lpTTT = (LPTOOLTIPTEXT)lParam;

            if (lpTTT->hdr.code == TTN_NEEDTEXT) {
                LoadString (hInstance, lpTTT->hdr.idFrom, lpTTT->szText,
                    sizeof(lpTTT->szText)/sizeof(TCHAR));
                return TRUE;
            } else {
                bCallDefWinProc = FALSE ;
                break;
            }
         }

      case WM_F1DOWN:
         if (dwCurrentDlgID)
            {
            CallWinHelp (dwCurrentDlgID) ;
            }
         else if (dwCurrentMenuID)
            {
            CallWinHelp (dwCurrentMenuID) ;
            dwCurrentMenuID = 0 ;
            }
         break ;

      case WM_CREATE:
         OnCreate (hWnd) ;
         ViewChart (hWnd) ;
         PrepareMenu (GetMenu (hWnd)) ;
         break ;

      case WM_DESTROY:
         WinHelp (hWndMain, pszHelpFile, HELP_QUIT, 0) ;
         PostQuitMessage (0);
         break ;

      case WM_QUERYENDSESSION:
         // please shut it down
         return (1) ;
         break ;

      case WM_ENDSESSION:
         if (wParam == TRUE)
            {
            // close any log file before closing down
            PerfmonClose (hWnd) ;
            return (1) ;
            }
         else
            bCallDefWinProc = TRUE ;
         break ;

      case WM_CLOSE:
         PerfmonClose (hWnd) ;
         break ;

      case WM_ACTIVATE:
         {
         int   fActivate = LOWORD (wParam) ;

         bPerfmonIconic = (BOOL) HIWORD (wParam) ;
         if (bPerfmonIconic == 0 && fActivate != WA_INACTIVE)
            {
            // set focus on the Legend window
            if (iPerfmonView == IDM_VIEWCHART)
               {
               SetFocus (hWndGraphLegend) ;
               }
            else if (iPerfmonView == IDM_VIEWALERT)
               {
               SetFocus (hWndAlertLegend) ;
               }
            else if (iPerfmonView == IDM_VIEWLOG)
               {
               SetFocus (hWndLogEntries) ;
               }
            else if (iPerfmonView == IDM_VIEWREPORT)
               {
               SetFocus (hWndReport) ;
               }
            }
         }
         break ;

      case WM_SYSCOLORCHANGE:
         DeletePerfmonSystemObjects () ;
         CreatePerfmonSystemObjects () ;
         WindowInvalidate (PerfmonViewWindow()) ;
         break ;

      case WM_WININICHANGE:
         if (!lParam || strsamei((LPTSTR)lParam, szInternational))
            {
            GetDateTimeFormats () ;
            }
         break ;

      case WM_DROPFILES:
         OnDropFile (wParam) ;
         return (0) ;
         break ;

      default:
         bCallDefWinProc = TRUE ;
         break;

      }  // switch

   if (bCallDefWinProc)
      {
      lRetCode = DefWindowProc (hWnd, message, wParam, lParam) ;
      }
   return (lRetCode);
   }  // MainWndProc