Ejemplo n.º 1
0
static void _OnSkinChanged(WM_MESSAGE * pMsg,int val)
{
   int i  = 0;
	 WM_MESSAGE myMsg;
   if(agentConf.Skin  != val)
   {	 
      agentConf.Skin  = val;
      pSkin  = &(SysWinSkins[val]);
      
      WINDOW_SetBkColor(pMsg->hWin, pSkin->bkColor);
      for(i=0; i<SLD_NUM; i++)
      {
         HSD_SLIDER_SetBkColor(Slideres[i], pSkin->sldBk);
				     HSD_SLIDER_SetFocusBkColor(Slideres[i], pSkin->sldBk);
         HSD_SLIDER_SetSlotColor(Slideres[i],pSkin->sldSlot);
         HSD_SLIDER_SetFocusSliderColor(Slideres[i], pSkin->sldFocusSlider);
         HSD_SLIDER_SetFocusSlotColor(Slideres[i], pSkin->sldSlot);
      }
      
      
      
	     myMsg.hWin = WM_GetClientWindow(menuWin);		
      myMsg.Data.v = val;
      myMsg.MsgId = USER_MSG_SKIN;
      WM_SendMessage (myMsg.hWin, &myMsg);
      
      myMsg.hWin  = confirmWin;
      WM_SendMessage (myMsg.hWin, &myMsg);
			
   }
}
Ejemplo n.º 2
0
static void _DrawNext(void) {
  int UpdateRem = 1;
  WM_HWIN iWin = (NextDrawWin == WM_HWIN_NULL) ? WM__FirstWin : NextDrawWin;
  GUI_CONTEXT ContextOld;
  GUI_SaveContext(&ContextOld);
  /* Make sure the next window to redraw is valid */
  for (; (iWin!=WM_HWIN_NULL) && UpdateRem; ) {
    WM_Obj* pWin = WM_H2P(iWin);
    if (pWin->Status & WM_SF_INVALID) {
      U8 Status = (pWin->Status &=  ~WM_SF_INVALID); /* Clear invalid flag */
      WM__NumInvalidWindows--;
      /* Send WM_PAINT if window is visible and a callback is defined */
      if ((pWin->cb != NULL)  && (Status & WM_SF_ISVIS)) {
        WM_MESSAGE Msg;
        Msg.hWin   = iWin;
        Msg.MsgId  = WM_PAINT;
        Msg.Data.p = (GUI_RECT*)&pWin->InvalidRect;
        WM_SelectWindow(iWin);
        WM_SetDefault();
        #if GUI_SUPPORT_MEMDEV
          if (Status & WM_SF_MEMDEV) {
            GUI_RECT r = pWin->InvalidRect;
            GUI_MoveRect (&r, pWin->Rect.x0, pWin->Rect.y0);
            GUI_MEMDEV_Draw(&r, cbPaint, &Msg, 0, (Status & WM_SF_HASTRANS) ? GUI_MEMDEV_HASTRANS : 0);
          } else
        #endif
        WM_SendMessage(iWin, &Msg);
        UpdateRem--;  /* Only the given number of windows at a time ... */
      }
    }
    iWin = pWin->hNextLin;
  }  
  NextDrawWin = iWin;   /* Remember the window */
  GUI_RestoreContext(&ContextOld);
}
Ejemplo n.º 3
0
/*********************************************************************
*
*       Client Callback
*/
static void FRAMEWIN__cbClient(WM_MESSAGE* pMsg) {
  WM_HWIN hWin    = pMsg->hWin;
  WM_HWIN hParent = WM_GetParent(pMsg->hWin);
  FRAMEWIN_Obj* pObj = FRAMEWIN_H2P(hParent);
  WM_CALLBACK* cb = pObj->cb;
  switch (pMsg->MsgId) {
    case WM_PAINT:
      GUI_SetBkColor(pObj->ClientColor);
      GUI_Clear();
      if (pObj->cb) {
	      WM_MESSAGE msg;
        msg.hWin   = hWin;
		    msg.MsgId  = WM_PAINT;
        (*pObj->cb)(&msg);
      }
      return;
    case WM_GET_FOCUSSED_CHILD:
      pMsg->Data.v = pObj->hFocussedChild;
      return;
    case WM_SET_FOCUS:
      if (pMsg->Data.v) {      /* Focus received */
        if (pObj->hFocussedChild) {
          WM_SendMessage(pObj->hFocussedChild, pMsg);
        } else {
          pObj->hFocussedChild = WM_SetFocusOnNextChild(hWin);
        }
      }
      return;
    case WM_KEY:
      if ( ((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt >0) {
        int Key = ((WM_KEY_INFO*)(pMsg->Data.p))->Key;
        switch (Key) {
          case GUI_KEY_TAB:
            pObj->hFocussedChild = WM_SetFocusOnNextChild(hWin);
            break;                    /* Send to parent by not doing anything */
        }
      }
      break;
    case WM_NOTIFY_CHILD_HAS_FOCUS:
      pObj->hFocussedChild = pMsg->hWinSrc;
      if (pMsg->Data.v) {
        pObj->Widget.State |= WIDGET_STATE_CHILD_HAS_FOCUS;
      } else {
        pObj->Widget.State &= ~WIDGET_STATE_CHILD_HAS_FOCUS;
      }
      WM_InvalidateWindow(hParent);
      break;
    case WM_GET_BKCOLOR:
      pMsg->Data.Color = pObj->ClientColor;
      return;                       /* Message handled */
    case WM_GETCLIENTRECT_ABS:      /* return client window in absolute (screen) coordinates */
    case WM_GET_CLIENT_WINDOW:      /* return handle to client window. For most windows, there is no seperate client window, so it is the same handle */
      WM_DefaultProc(pMsg);
      return;                       /* We are done ! */
  }
  if (cb) {
    pMsg->hWin = hParent;
    (*cb)(pMsg);
  }
}
Ejemplo n.º 4
0
/*********************************************************************
*
*       WIDGET_SetEffect
*/
void WIDGET_SetEffect(WM_HWIN hObj, const WIDGET_EFFECT* pEffect) {
  WM_MESSAGE Msg;
  Msg.hWinSrc = 0;
  Msg.MsgId = WM_WIDGET_SET_EFFECT;
  Msg.Data.p = (const void*)pEffect;
  WM_SendMessage(hObj, &Msg);
}
Ejemplo n.º 5
0
/*******************************************************************
*
*       _ChangeInfoText

  Sends a message to the background window and invalidate it, so
  the callback of the background window display the new text.
*/
static void _ChangeInfoText(char* pStr) {
  WM_MESSAGE Message;
  Message.MsgId  = MSG_CHANGE_TEXT;
  Message.Data.p = pStr;
  WM_SendMessage(WM_HBKWIN, &Message);
  WM_InvalidateWindow(WM_HBKWIN);
}
Ejemplo n.º 6
0
/*********************************************************************
*
*       WM_SetScrollState
*/
void WM_SetScrollState(WM_HWIN hWin, const WM_SCROLL_STATE* pState) {
  if (hWin && pState) {
    WM_MESSAGE Msg;
    Msg.MsgId = WM_SET_SCROLL_STATE;
    Msg.Data.p = (const void*)pState;
    WM_SendMessage(hWin, &Msg);
  }
}
Ejemplo n.º 7
0
void WM__ReleaseCapture(void) {
  if (WM__hCapture) {
    WM_MESSAGE Msg;
    Msg.MsgId  = WM_CAPTURE_RELEASED;
    WM_SendMessage(WM__hCapture, &Msg);
    WM__hCapture = 0;
  }
}
Ejemplo n.º 8
0
/*********************************************************************
*
*       WM_GetClientWindow
*/
WM_HWIN WM_GetClientWindow(WM_HWIN hObj) {
  WM_MESSAGE Msg;
  Msg.Data.v = 0;
  Msg.MsgId  = WM_GET_CLIENT_WINDOW;
  WM_SendMessage(hObj, &Msg);
  return (WM_HWIN)Msg.Data.v;

}
Ejemplo n.º 9
0
/*********************************************************************
*
*       _cbFrameWinControl
*/
static void _cbFrameWinControl(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  int     xSize;
  int     ySize;
  int     NCode;
  int     Id;

  switch (pMsg->MsgId) {
  case WM_KEY:
    WM_SendMessage(WM_HBKWIN, pMsg);
    break;
  case WM_INIT_DIALOG:
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_PROGBAR0);
    PROGBAR_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    PROGBAR_SetFont(hItem, &GUI_FontD6x8);
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_HALT);
    BUTTON_SetFocussable(hItem, 0);
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_NEXT);
    BUTTON_SetFocussable(hItem, 0);
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT0);
    TEXT_SetText(hItem, "Intro");
    TEXT_SetFont(hItem, &GUI_Font8_ASCII);
    break;
  case WM_PAINT:
    xSize = WM_GetWindowSizeX(pMsg->hWin);
    ySize = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DrawGradientV(0, 0, xSize - 1, ySize - 1, 0xFFFFFF, 0xDCCEC0);
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch (NCode) {
    case WM_NOTIFICATION_RELEASED:
      switch (Id) {
      case GUI_ID_HALT:
        if (_Halt) {
          _Halt          = 0;
          _HaltTime      = GUI_GetTime() - _HaltTimeStart;
          WM_MakeModal(0);
        } else {
          _Halt          = 1;
          _HaltTimeStart = GUI_GetTime() - _HaltTime;
          WM_MakeModal(pMsg->hWin);
        }
        break;
      case GUI_ID_NEXT:
        _Next = 1;    // Will be set to 0 by GUIDEMO_GetNextState()
        _ClearHalt(); // Clear _Halt, so the next sample demonstrates immediately
        break;
      }
      break;
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}
Ejemplo n.º 10
0
/*********************************************************************
*
*       _IsInGroup
*/
static int _IsInGroup(WM_HWIN hWin, U8 GroupId) {
    if (GroupId) {
        WM_MESSAGE Msg;
        Msg.MsgId = WM_GET_RADIOGROUP;
        WM_SendMessage(hWin, &Msg);
        return (Msg.Data.v == GroupId);
    }
    return 0;
}
Ejemplo n.º 11
0
void WM_Paint(WM_HWIN hObj) {
  WM_MESSAGE Msg;
  WM_SelectWindow(hObj);
  WM_ValidateWindow(hObj);
  WM_SetDefault();
  Msg.MsgId  = WM_PAINT;
  Msg.Data.p = NULL;
  WM_SendMessage(hObj, &Msg);
}
Ejemplo n.º 12
0
/*********************************************************************
*
*       WM_GetBkColor
*
  Purpose:
    Return the clients background color.
    If a window does not define a background color, the default
    procedure returns GUI_INVALID_COLOR
*/
GUI_COLOR WM_GetBkColor(WM_HWIN hObj) {
  if (hObj) {
    WM_MESSAGE Msg;
    Msg.MsgId  = WM_GET_BKCOLOR;
    WM_SendMessage(hObj, &Msg);
    return Msg.Data.Color;
  }
  return GUI_INVALID_COLOR;
}
Ejemplo n.º 13
0
int WM_BroadcastMessage( WM_MESSAGE* pMsg) {
  WM_HWIN hWin;
  WM_LOCK();
  for (hWin = WM__FirstWin; hWin; ) {
    WM_SendMessage(hWin, pMsg);
    hWin = WM_H2P(hWin)->hNextLin;
  }
  WM_UNLOCK();
  return 0;
}
Ejemplo n.º 14
0
/*********************************************************************
*
*       WM__SetFocus

  Sets the focus to the specified child. It sends 2 messages:

    WM_SET_FOCUS(1) to window to receive focus
    WM_SET_FOCUS(0) to window to lose focus

  Return value:
    0    on success (Focus could be set)
    !=0  on failure (Windows could not take the focus)
*/
int WM_SetFocus(WM_HWIN hWin) {
  int r;
  WM_MESSAGE Msg;
  WM_LOCK();
  if ((hWin) && (hWin != WM__hWinFocus)) {
    Msg.MsgId  = WM_SET_FOCUS;
    /* Send a "no more foucs" message to window losing focus */
    Msg.Data.v = 0;
    WM_SendMessage(WM__hWinFocus, &Msg);
    /* Send "You have the focus now" message to the window */
    Msg.Data.v = 1;
    WM_SendMessage(WM__hWinFocus = hWin, &Msg);
    r = Msg.Data.v;
  } else {
    r = 1;
  }
  WM_UNLOCK();
  return r;
}
Ejemplo n.º 15
0
/*********************************************************************
*
*       _NotifyOwner
*
* Purpose:
*   Notify owner of the window.
*   If no owner is registered, the parent is considered owner.
*/
static void _NotifyOwner(WM_HWIN hObj, int Notification) {
  WM_MESSAGE Msg = {0};
  WM_HWIN hOwner;
  LISTVIEW_Obj* pObj    = LISTVIEW_H2P(hObj);
  hOwner = pObj->hOwner ? pObj->hOwner : WM_GetParent(hObj);
  Msg.MsgId   = WM_NOTIFY_PARENT;
  Msg.Data.v  = Notification;
  Msg.hWin    = hObj;
  WM_SendMessage(hOwner, &Msg);
}
Ejemplo n.º 16
0
/*********************************************************************
*
*       WM_IsFocussable
*/
int WM_IsFocussable(WM_HWIN hWin) {
  int r = 0;
  if (hWin) {
    WM_MESSAGE Msg;
    Msg.Data.v = 0;
    Msg.MsgId  = WM_GET_ACCEPT_FOCUS;
    WM_SendMessage(hWin, &Msg);
    r = Msg.Data.v;
  }
  return r;
}
void WM_SendToParent(WM_HWIN hChild, WM_MESSAGE* pMsg) {
  if (pMsg) {
    WM_HWIN hParent;
    WM_LOCK();
    hParent = WM_GetParent(hChild);
    if (hParent) {
      pMsg->hWinSrc = hChild;
      WM_SendMessage(hParent, pMsg);
    }
    WM_UNLOCK();
  }
}
/*********************************************************************
*
*       _cbList
*
* Function description
*   Callback of the LISTVIEW widget.
*/
static void _cbList(WM_MESSAGE * pMsg) {
  int NCode;

  switch (pMsg->MsgId) {
  case WM_NOTIFY_PARENT:
    NCode = pMsg->Data.v;
    if (NCode == WM_NOTIFICATION_CHILD_DELETED) {
      WM_SendMessage(WM_GetParent(pMsg->hWin), pMsg);
      break;
    }
    LISTVIEW_Callback(pMsg);
    break;
  default:
    LISTVIEW_Callback(pMsg);
  }
}
Ejemplo n.º 19
0
static void sldListener(WM_MESSAGE * pMsg)
{
   const WM_KEY_INFO * pInfo;
   WM_MESSAGE myMsg;
   
   
   switch(pMsg->MsgId)
   {
      case WM_KEY:
           pInfo  = (WM_KEY_INFO*)(pMsg->Data.p);
           switch(pInfo->Key)
           {
              case GUI_KEY_PWM_INC:       
                   WM_SendMessageNoPara(subWins[3], USER_MSG_DIM);
                   break;
              case GUI_KEY_BACKSPACE:
                   if(Mem_isEqual(&SysConf, &agentConf, sizeof(SysConf)) )
                   {
                      WM_SetFocus(Slideres[0]);
                      WM_SetFocus(menuWin);                      
                   }
                   else
                   {
                      myMsg.hWin  = WM_GetClientWindow(confirmWin);
                      myMsg.hWinSrc  = subWins[3];
                      myMsg.MsgId  = USER_MSG_CHOOSE;
                      myMsg.Data.v  = SYS_SETTING;
                      WM_SendMessage(myMsg.hWin, &myMsg);
                      
                      WM_BringToTop(confirmWin);
                      WM_SetFocus(WM_GetDialogItem (confirmWin,GUI_ID_BUTTON0));                    
                   }
                   break;
                                 
              default:
                   HSD_SLIDER_Callback(pMsg);
                   break;
           }
           break;
           
      default:
           HSD_SLIDER_Callback(pMsg);
           break;
   }
}
Ejemplo n.º 20
0
/*********************************************************************
*
*       _cbEdit
*/
static void _cbEdit(WM_MESSAGE * pMsg) {
  const WM_KEY_INFO * pInfo;
  WM_MESSAGE          Msg;

  switch (pMsg->MsgId) {
  case WM_KEY:
    pInfo = pMsg->Data.p;
    if (pInfo->Key == GUI_KEY_ENTER) {
      if (pInfo->PressedCnt == 0) {
        Msg.MsgId   = WM_APP_SHOW_TEXT;
        Msg.hWinSrc = pMsg->hWin;
        WM_SendMessage(WM_HBKWIN, &Msg);
        return;
      }
    }
  }
  EDIT_Callback(pMsg);
}
/*********************************************************************
*
*       _cbTransWindow
*/
static void _cbTransWindow(WM_MESSAGE* pMsg) {
  static GUI_PID_STATE   StateOld;
  GUI_PID_STATE        * pState;
  GUI_PID_STATE          StateNew;
  GUI_PID_STATE          State;
  WM_HWIN                hBelow;
  WM_HWIN                hWin;
  
  hWin = pMsg->hWin;
  GUI_PID_GetState(&StateNew);
  State    = ((StateNew.x == -1) && (StateNew.y == -1)) ? StateOld : StateNew;
  StateOld = State;
  switch (pMsg->MsgId) {
  case WM_PAINT:
    State.x -= WM_GetWindowOrgX(hWin);
    State.y -= WM_GetWindowOrgY(hWin);
    _DrawEye(EYE_X1, EYE_Y, State.x, State.y, EYE_RX, EYE_RY);
    _DrawEye(EYE_X2, EYE_Y, State.x, State.y, EYE_RX, EYE_RY);
    break;
  case WM_TOUCH:
    if (pMsg->Data.p) {
      pState = (GUI_PID_STATE *)pMsg->Data.p;
      if (pState->Pressed) {
        if (!_ClickedOutsideArea(pState->x, pState->y) || WM_HasCaptured(hWin)) {
          WM_SetCaptureMove(hWin, pState, MIN_VISIBILITY, 0);
        } else {
          //
          // Transfer the message to the underlying window, since the transparent area has been clicked
          //
          hBelow = WM_Screen2hWinEx(hWin, State.x, State.y);
          if (hBelow) {
            pState->x = State.x - WM_GetWindowOrgX(hBelow);
            pState->y = State.y - WM_GetWindowOrgY(hBelow);
            WM_SendMessage(hBelow, pMsg);
          }
        }
      }
    }
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}
Ejemplo n.º 22
0
/*********************************************************************
*
*       _cbFrameWinInfo
*/
static void _cbFrameWinInfo(WM_MESSAGE * pMsg) {
  int xSize, ySize;

  switch (pMsg->MsgId) {
  case WM_KEY:
    WM_SendMessage(WM_HBKWIN, pMsg);
    break;
  case WM_CREATE:
    xSize = LCD_GetXSize();
    WM_SetWindowPos(pMsg->hWin, xSize >> 1, 0, xSize >> 1, INFO_SIZE_Y);
    break;
  case WM_PAINT:
    xSize = WM_GetWindowSizeX(pMsg->hWin);
    ySize = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DrawGradientV(0, 0, xSize - 1, ySize - 1, 0xFFFFFF, 0xDCCEC0);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}
Ejemplo n.º 23
0
/*********************************************************************
*
*       WM_SetEnableState
*/
void WM_SetEnableState(WM_HWIN hWin, int State) {
  WM_Obj* pWin;
  U16 Status;
  WM_LOCK();
  pWin = WM_H2P(hWin);
  Status = pWin->Status;
  if (State) {
    Status &= ~WM_SF_DISABLED;
  } else {
    Status |=  WM_SF_DISABLED;
  }
  if (pWin->Status != Status) {
    WM_MESSAGE Msg;
    pWin->Status = Status;
    Msg.MsgId  = WM_NOTIFY_ENABLE;
    Msg.Data.v = State;
    WM_SendMessage(hWin, &Msg);
  }
  WM_UNLOCK();
}
Ejemplo n.º 24
0
Archivo: ipc.c Proyecto: berkus/acess2
int IPC_Msg_SendMsg(tIPC_Client *Client, tAxWin_IPCMessage *Msg)
{
	tIPCMsg_SendMsg	*info = (void*)Msg->Data;
	tWindow	*src, *dest;

	ASSERT(Msg->ID == IPCMSG_SENDMSG);
	
	// - Sanity checks
	if( Msg->Size < sizeof(tIPCMsg_SendMsg) )
		return -1;
	if( Msg->Size < sizeof(tIPCMsg_SendMsg) + info->Length )
		return -1;
	
	src = IPC_int_GetWindow(Client, Msg->Window);
	if(!src)	return 1;
	dest = IPC_int_GetWindow(Client, info->Remote);
	if(!dest)	return 1;

	WM_SendMessage(src, dest, info->ID, info->Length, info->Data);	

	return 0;
}
Ejemplo n.º 25
0
/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN                hItem;
	WM_MESSAGE             Msg;
	WM_HWIN                hIteminfo;
	int 									  i;
	int 	     					sel;
	uint8_t     					items;
	FRESULT res;
 // FILINFO fno;
  //DIR dir;
  // USER START (Optionally insert additional variables)
  // USER END
	hItem = pMsg->hWin;
	WINDOW_SetBkColor(hItem, GUI_LIGHTGRAY);
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
	//WM_SetFocus(hItem);
	
  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
    TEXT_SetFont(hItem,&GUI_FontHZ_Song_12);
    TEXT_SetText(hItem, "自学习文件选择");  
	
		hIteminfo = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
    TEXT_SetFont(hIteminfo,&GUI_FontHZ_Song_12);
		TEXT_SetTextColor(hIteminfo,GUI_RED);
		TEXT_SetText(hIteminfo, (char *)"打开文件……");
		WM_HideWindow(hIteminfo);
	  //
    // Initialization of 'Dropdown'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
		DROPDOWN_SetFont(hItem,&GUI_FontHZ_Song_12);
    DROPDOWN_AddString(hItem, "U盘");
    DROPDOWN_AddString(hItem, "SD卡");
		if(k_StorageGetStatus(MSD_DISK_UNIT) != 0)
		DROPDOWN_SetSel(hItem,1);
		else DROPDOWN_SetSel(hItem,0);
	//
    // Initialization of 'Treeview'
    //
		store_dev=DROPDOWN_GetSel(hItem);
		WT_TestFolder_Init();
	  hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
		for(i=0;i<TestFolder.number_TotalFile;i++)
		{
			LISTBOX_AddString(hItem, (char *)TestFolder.FilesName[i]);
		}
		LISTBOX_SetFont(hItem,GUI_FONT_20_1);
		LISTBOX_SetSel(hItem,TestFolder.number_CurrentFile);
    
		hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_OK);
		BUTTON_SetFont(hItem,&GUI_FontHZ_Song_12);
		BUTTON_SetSkinClassic(hItem);
		BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		BUTTON_SetBkColor(hItem,BUTTON_CI_UNPRESSED, GUI_GREEN);
		BUTTON_SetFocussable(hItem,0);//不接收焦点
		
		hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_CANCEL);
		BUTTON_SetFont(hItem,&GUI_FontHZ_Song_12);
		BUTTON_SetSkinClassic(hItem);
		BUTTON_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		BUTTON_SetBkColor(hItem,BUTTON_CI_UNPRESSED, GUI_RED);
		BUTTON_SetFocussable(hItem,0);//不接收焦点
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
	case MY_MESSAGE_CLICK:
		GUI_SendKeyMsg(GUI_KEY_TAB, 1);//改变输入焦点
		break;
	case MY_MESSAGE_DOWN:
		hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
		if(WM_HasFocus(hItem))
		{
			LISTBOX_IncSel(hItem);
		}
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
		if(WM_HasFocus(hItem))
		{
			sel=DROPDOWN_GetSel(hItem);
			if(sel<1)
			{
				DROPDOWN_IncSel(hItem);
			}					
			else //sel>=1 
			{
				DROPDOWN_SetSel(hItem,0);		
			}	

			store_dev=DROPDOWN_GetSel(hItem);
			WT_TestFolder_Init();
			hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
			items = LISTBOX_GetNumItems(hItem);
			for(i=0;i<items;i++)
			{
				LISTBOX_DeleteItem(hItem,0);
			}
			for(i=0;i<TestFolder.number_TotalFile;i++)
			{
				LISTBOX_AddString(hItem, (char *)TestFolder.FilesName[i]);
			}
		}	
		break;
	case MY_MESSAGE_UP:
		hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
		if(WM_HasFocus(hItem))
		{
			LISTBOX_DecSel(hItem);
		}
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
		if(WM_HasFocus(hItem))
		{
			sel=DROPDOWN_GetSel(hItem);
			if(sel>0)
			{
				DROPDOWN_DecSel(hItem);
			}					
			else //sel>=1 
			{
				DROPDOWN_SetSel(hItem,1);		
			}	

			store_dev=DROPDOWN_GetSel(hItem);
			WT_TestFolder_Init();
			hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
			items = LISTBOX_GetNumItems(hItem);
			for(i=0;i<items;i++)
			{
				LISTBOX_DeleteItem(hItem,0);
			}
			for(i=0;i<TestFolder.number_TotalFile;i++)
			{
				LISTBOX_AddString(hItem, (char *)TestFolder.FilesName[i]);
			}
		}
		break;
	case MY_MESSAGE_CANCEL://取消
		GUI_EndDialog(pMsg->hWin,0);
		break;
	case MY_MESSAGE_OK:
		hIteminfo = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
		TEXT_SetText(hIteminfo, (char *)"打开文件中……");
		WM_ShowWindow(hIteminfo);
	  GUI_Exec();
		hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
		TestFolder.number_CurrentFile=LISTBOX_GetSel(hItem);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
		store_dev=DROPDOWN_GetSel(hItem);
		WT_TestItem_Init((char *)TestFolder.FilesName[TestFolder.number_CurrentFile]);
		//WT_TestFile_Write2Flash((char *)TestFolder.FilesName[TestFolder.number_CurrentFile]);//将文件内容复制到Flash
	  //WT_TestFiles_Write2card((char *)TestFolder.FilesName[TestFolder.number_CurrentFile]);//将文件内容复制到SD card

	  if(TestFile.file_status == 1)//文件读取OK
		{
			Msg.MsgId = MY_MESSAGE_BUTTONOK;
			WM_SendMessage(pMsg->hWinSrc,&Msg);
			GUI_EndDialog(pMsg->hWin,0);
		}
		else
		{
			TEXT_SetText(hIteminfo, (char *)"读取文件错误!");
			WM_ShowWindow(hIteminfo);
		}
		Msg.MsgId = MY_MESSAGE_BUTTONOK;
		WM_SendMessage(pMsg->hWinSrc,&Msg);
		GUI_EndDialog(pMsg->hWin,0);

		break;
	case MY_MESSAGE_BUTTONDELETE:
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
		store_dev=DROPDOWN_GetSel(hItem);
		if(store_dev==0) //usb
		strcpy(filename,path_testfile);
		//f_opendir(&dir, path_testfile);
		if(store_dev==1) //sd
		strcpy(filename,path_testfile_sd);
		//f_opendir(&dir, path_testfile_sd);
		//res = f_opendir(&dir, "1:/LZY_WireTester/Test Files");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
		strcat(filename,"/");
		sel = LISTBOX_GetSel(hItem);
		if(sel < 0) break;
		strcat(filename,(char *)TestFolder.FilesName[LISTBOX_GetSel(hItem)]);
		res=f_unlink((const TCHAR*)filename);
		if(res == FR_OK)
		{
			hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
			store_dev=DROPDOWN_GetSel(hItem);
			WT_TestFolder_Init();
			hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
			items = LISTBOX_GetNumItems(hItem);
			for(i=0;i<items;i++)
			{
				LISTBOX_DeleteItem(hItem,0);
			}
			for(i=0;i<TestFolder.number_TotalFile;i++)
			{
				LISTBOX_AddString(hItem, (char *)TestFolder.FilesName[i]);
			}
			WM_SetFocus(hItem);
			if(sel > 0) LISTBOX_SetSel(hItem,sel - 1);
			else LISTBOX_SetSel(hItem,0);
		}
		break;
	case WM_PAINT://绘制标题栏
		GUI_SetColor(GUI_DARKBLUE);
		GUI_FillRect(0,0,380,22);
		GUI_SetColor(GUI_DARKGRAY);
		GUI_SetPenSize(8);
		GUI_DrawRect(0,0,378,220);
    break;
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}
Ejemplo n.º 26
0
/*******************************************************************************************************
 *
 *         函数名称: 
 *
 *         函数功能: 
 *
 *         入口参数: 
 *
 *         出口参数: 无
 *
 *             说明:
 *
 *******************************************************************************************************/
void _cbKBDlgCallback(WM_MESSAGE * pMsg) 
{
    int NCode;
    int id;
    int i;
    ///static  U32 input_num ;
    WM_MESSAGE Msg = {0};
    
    char str_buff[10];
      
    WM_HWIN hWin = pMsg->hWin;
    
    switch (pMsg->MsgId) 
    {
        case WM_CREATE:
            break;
        case WM_PAINT:
            //TextNumPaintDialog(pMsg);
            break;        
        case WM_INIT_DIALOG:
            InitKBDlg(pMsg);
            break;        
        case WM_KEY:
            switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) 
            {
                case GUI_KEY_ESCAPE:
                    GUI_EndDialog(pMsg->hWin, 1);
                    break;
                case GUI_KEY_ENTER:
                    GUI_EndDialog(pMsg->hWin, 0);
                    break;
            }
            break;
            
         case WM_NOTIFY_PARENT:
            id = WM_GetId(pMsg->hWinSrc); 
            NCode = pMsg->Data.v;        
            switch (NCode) 
            {
				case WM_NOTIFICATION_RELEASED:
                    switch (id)
                    {                
                        case GUI_ID_OK:
                            GUI_EndDialog(hWin, 0);
                  
                            break;
                        case GUI_ID_CANCEL:
                            GUI_EndDialog(hWin, 0);
                            break;
                        case GUI_ID_BUTTON_OK:
                            GUI_EndDialog(hWin, ParentParam);
                            Msg.MsgId   = WM_USER_SFKB_END;
                            Msg.Data.v  = BCD2UINT16(ParentParam);
                            Msg.hWin    = hMain;      
                            Msg.hWinSrc = hWin;

                            WM_SendMessage(hMain, &Msg);
                            break;
                        case GUI_ID_BUTTON_CANCEL:
                            GUI_EndDialog(hWin, -1);
                       
                            break;
                        default:
                            break;
                    }  
                    break;                    
                case WM_NOTIFICATION_CLICKED:
                    switch(id)
                    {  
                        case GUI_ID_BUTTON_CLR:  //清除
                            ParentParam = 0;
                            goto update_edit;
                        case GUI_ID_BUTTON_BK_SPC: //退格
                            ParentParam = ParentParam >> 4;
                            goto update_edit;
                        case GUI_ID_BUTTON_OK:
                            //GUI_EndDialog(hWin, input_num);
                            break;
                        case GUI_ID_BUTTON_CANCEL:
                            //GUI_EndDialog(hWin, -1);
                            break;
                        case GUI_ID_BUTTON_NUM1:
                        case GUI_ID_BUTTON_NUM2:
                        case GUI_ID_BUTTON_NUM3:
                        case GUI_ID_BUTTON_NUM4:
                        case GUI_ID_BUTTON_NUM5:
                        case GUI_ID_BUTTON_NUM6:
                        case GUI_ID_BUTTON_NUM7:
                        case GUI_ID_BUTTON_NUM8:
                        case GUI_ID_BUTTON_NUM9:
                        case GUI_ID_BUTTON_NUM0:    
                            for (i = 0; i < 10; i++) //10个数字
                            {
                                if (NumBtn09ID[i] == id)
                                {
                                    ParentParam = (ParentParam << 4) + i; 
                                    break;             
                                }
                            } 
                            
                            ParentParam &= 0xFFFFF;
                            
                          update_edit:
                            sprintf(str_buff,"%x",ParentParam);
                            EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT_KB_INPUT),str_buff);
                            break;
                         default:
                             break;
                   } 
                   break;
               }
               
               break;
               
         default:
            WM_DefaultProc(pMsg);      
    }      
          
        
    
}
Ejemplo n.º 27
0
/*********************************************************************
*
*       WM_GetInsideRectEx
*
  Purpose:
    Return the inside rectangle in client coordinates.
    The inside rectangle is the client rectangle minus the effect,
    which typically reduces the rectangle by 0 - 3 pixels on either side
    (2 for the standard 3D effect).
*/        
void WM_GetInsideRectEx(WM_HWIN hWin, GUI_RECT* pRect) {
  WM_MESSAGE Msg;
  Msg.Data.p = pRect;
  Msg.MsgId  = WM_GET_INSIDE_RECT;
  WM_SendMessage(hWin, &Msg);
}
void WM_GetScrollState(WM_HWIN hObj, WM_SCROLL_STATE* pScrollState) {
  WM_MESSAGE Msg;
  Msg.MsgId  = WM_GET_SCROLL_STATE;
  Msg.Data.p = pScrollState;
  WM_SendMessage(hObj, &Msg);
}
Ejemplo n.º 29
0
/**监控设置 LISTVIEW 的监听器(回调函数)
*
*/
static void myListViewListener(WM_MESSAGE* pMsg)
{
	 const WM_KEY_INFO * pInfo;
	 WM_HWIN thisListView  = pMsg->hWin; 
	 WM_MESSAGE myMsg;
  int i  = 0;
 
  MNT_BERTH * pIterator  = NULL;
 
	 int selectedRow  = -1;
  int index  = -1;
	
  switch(pMsg->MsgId)
  {
   case WM_SET_FOCUS:

        if(pMsg->Data.v)
        {
           if(LISTVIEW_GetNumRows(pMsg->hWin))
           {
              LISTVIEW_SetSel(pMsg->hWin, 0);
           } 
           if(pMntHeader)
           {
              myMsg.hWin  = WM_GetClientWindow(mntSettingWin);
              myMsg.MsgId = USER_MSG_LV_MOVE;
              myMsg.Data.p  = (void*)pMntHeader;           
              WM_SendMessage(myMsg.hWin, &myMsg);
           }
        }
        LISTVIEW_Callback(pMsg);
        break;

        
   case WM_KEY:
        pInfo  = (WM_KEY_INFO*)pMsg->Data.p;
   
      switch(pInfo->Key)
      {
       case GUI_KEY_PWM_INC:       
            WM_SendMessageNoPara(subWins[3], USER_MSG_DIM);
            break;
       case GUI_KEY_UP:
       case GUI_KEY_DOWN:
            LISTVIEW_Callback(pMsg); 
            selectedRow  = LISTVIEW_GetSel(thisListView);            
            pIterator  = pMntHeader;
            for(index=0; index < selectedRow; index++)
            {
               pIterator  = pIterator->pNext;
            }
            myMsg.hWin     = WM_GetClientWindow(mntSettingWin);
            myMsg.MsgId    = USER_MSG_LV_MOVE;
            myMsg.Data.p   = (void*)pIterator;           
            WM_SendMessage(myMsg.hWin, &myMsg);
            break;
       
       case GUI_KEY_RIGHT:
            if(pMntHeader)
            {
               selectedRow  = LISTVIEW_GetSel(thisListView);
               pIterator  = pMntHeader;
               for(index=0;  index < selectedRow; index++)
               {
                  pIterator  = pIterator->pNext;
               }
               
               if(pIterator)
               {
                  if(pIterator->chsState == MNTState_Monitored)
                  {
                     pIterator->chsState  = MNTState_Choosen;
                     LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖");
                  }
                  else if(pIterator->chsState == MNTState_None)
                  {
                     pIterator->chsState  = MNTState_Default;
                     LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖");
                  }     
               }
//               else
//               {
//                  INFO("Err!");            
//               }
               myMsg.hWin     = WM_GetClientWindow(mntSettingWin);
               myMsg.hWinSrc  = pMsg->hWin;
               myMsg.Data.p   = (void*)pIterator;           
               
               myMsg.MsgId    = USER_MSG_FOCUS;                
               WM_SendMessage(myMsg.hWin, &myMsg);                
            }
//            WM_SetFocus(mntSettingWin);
            break;
          
       case GUI_KEY_ENTER:
            selectedRow  = LISTVIEW_GetSel(thisListView);
            pIterator  = pMntHeader;
            
            for(index=0;index<selectedRow;index++)
            {
              pIterator  = pIterator->pNext;
            }
            
            switch(pIterator->chsState)
            {
               case MNTState_Choosen:
                    pIterator->chsState  = MNTState_Monitored;
                    LISTVIEW_SetItemText(thisListView, 2, selectedRow, "啊");
                    break;
               case MNTState_Default:
                    pIterator->chsState  = MNTState_None;
                    LISTVIEW_SetItemText(thisListView, 2, selectedRow, "啊");
                    break;
               case MNTState_None:
                    pIterator->chsState  = MNTState_Default;
                    LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖");
                    break;
               default:
                    pIterator->chsState  = MNTState_Choosen;
                    LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖");
                    break;
            }      
            break;
        
       case GUI_KEY_BACKSPACE:  
            if(pMntHeader)
            {
               pIterator  = pMntHeader;
               while(pIterator)
               {
                  pIterator->chsState  = MNTState_Monitored;
                  
                  pIterator  = pIterator->pNext;
               }
               myMsg.hWin  = WM_GetClientWindow(menuWin);               
               myMsg.MsgId  = USER_MSG_DFULT_CNT;
               myMsg.Data.v  = 0;
               WM_SendMessage(myMsg.hWin, &myMsg);
            }             
            WM_SetFocus(menuWin);
            break;	
       
       case GUI_KEY_MENU:
            WM_BringToTop(mapWin);
            WM_SetFocus(mapWin);
            break;
          
       default:
            LISTVIEW_Callback(pMsg);
        break;
    }
    break;
   
   
   
   default:
    LISTVIEW_Callback(pMsg);
    break;
  }
}
Ejemplo n.º 30
0
int Decorator_HandleMessage(tWindow *Window, int Message, int Length, const void *Data)
{
	static tWindow	*btn1_down;
	static enum {
		BTN1_MOVE,
		BTN1_RLEFT,
		BTN1_RRIGHT,
		BTN1_RBOTTOM,
	} btn1_mode;
	switch(Message)
	{
	case WNDMSG_MOUSEMOVE: {
		const struct sWndMsg_MouseMove	*msg = Data;

		if( Window && btn1_down == Window )
		{
			switch(btn1_mode)
			{
			case BTN1_MOVE:	// Move
				WM_MoveWindow(Window, Window->X + msg->dX, Window->Y + msg->dY);
				break;
			case BTN1_RLEFT:	// Resize left
				if( Window->W + msg->dX > 50 )
				{
					WM_MoveWindow(Window, Window->X + msg->dX, Window->Y);
					WM_ResizeWindow(Window, Window->W - msg->dX, Window->H);
				}
				break;
			case BTN1_RRIGHT:	// Resize right
				if( Window->W + msg->dX > 50 )
				{
					WM_ResizeWindow(Window, Window->W + msg->dX, Window->H);
				}
				break;
			case BTN1_RBOTTOM:	// Resize bottom
				if( Window->H + msg->dY > 50 )
				{
					WM_ResizeWindow(Window, Window->W, Window->H + msg->dY);
				}
				break;
			}
			return 0;
		}

		// TODO: Change cursor when hovering over edges

		if(msg->Y >= 0)	return 1;	// Pass

		// TODO: Handle
		return 0; }
	case WNDMSG_MOUSEBTN: {
		const struct sWndMsg_MouseButton	*msg = Data;
		
		// TODO: Do something with other buttons
		// - Window menu for example
		if( msg->Button != 0 )
			return 1;	// pass on

		if( !msg->bPressed )
			btn1_down = 0;		

		#define HOTSPOTR(x,y,w,h) Decorator_INT_CoordInRangeR(msg->X, msg->Y, x, y, w, h)
		#define HOTSPOTA(sx,sy,ex,ey) Decorator_INT_CoordInRange(msg->X, msg->Y, sx, sy, ew, eh)
		// Left resize border
		if( msg->bPressed && HOTSPOTR(-ciSideBorderWidth, -ciTitlebarHeight,
				ciSideBorderWidth, ciTitlebarHeight+Window->H+ciBottomBorderWidth) )
		{
			btn1_down = Window;
			btn1_mode = BTN1_RLEFT;
			return 0;
		}
		// Right resize border
		if( msg->bPressed && HOTSPOTR(Window->W, -ciTitlebarHeight,
			ciSideBorderWidth, ciTitlebarHeight+Window->H+ciBottomBorderWidth) )
		{
			btn1_down = Window;
			btn1_mode = BTN1_RRIGHT;
			return 0;
		}
		// Bottom resize border
		if( msg->bPressed && HOTSPOTR(0, Window->H,
			Window->W, ciTitlebarHeight) )
		{
			btn1_down = Window;
			btn1_mode = BTN1_RBOTTOM;
			return 0;
		}
		// Titlebar buttons
		if( msg->bPressed && Decorator_INT_CoordInRangeR(msg->X, msg->Y, BTN_CLOSE(Window)) )
		{
			WM_SendMessage(NULL, Window, WNDMSG_CLOSE, 0, NULL);
			return 0;
		}
		// Titlebar - Move
		if( msg->bPressed && msg->Y < 0 )
		{
			btn1_down = Window;
			btn1_mode = BTN1_MOVE;
			return 0;
		}
		#undef HOTSPOTR
		#undef HOTSPOTA

		return 1; }
	default:	// Anything unhandled is passed on
		return 1;
	}
}