void MMenuItem::Select(bool bSelect) { m_bSelected = bSelect; MRECT r = GetClientRect(); if(m_bSelected==true){ MPopupMenu* pSubMenu = GetSubMenu(); if(pSubMenu!=NULL && pSubMenu->IsVisible()==false){ MPopupMenu* pPopupMenu = (MPopupMenu *)GetParent(); if(pPopupMenu->GetType()==MPMT_VERTICAL) pSubMenu->Show(r.x+r.w, r.y, true); else pSubMenu->Show(r.x, r.y+r.h, true); } } else{ MPopupMenu* pSubMenu = GetSubMenu(); if(pSubMenu!=NULL) pSubMenu->Show(false); } }
void MCreateSample(void) { MWidget* pMainFrame = Mint::GetInstance()->GetMainFrame(); MWidget* pNew = new MFileDialog("*.*", pMainFrame, pMainFrame); //pNew->SetBounds(10, 10, 300, 300); pNew->Show(true); class MFrameBitmap : public MFrame{ int m_nBitmap; protected: virtual void OnDraw(MDrawContext* pDC){ MFrame::OnDraw(pDC); MRECT r = GetClientRect(); if(MBitmapManager::GetCount()==0) return; m_nBitmap %= MBitmapManager::GetCount(); pDC->SetBitmap(MBitmapManager::Get(m_nBitmap)); m_nBitmap++; pDC->Draw(r.x, r.y); //pDC->Draw(r); } public: MFrameBitmap(const char* szName=NULL, MWidget* pParent=NULL, MListener* pListener=NULL) : MFrame(szName, pParent, pListener){ m_nBitmap = 0; } virtual ~MFrameBitmap(void){ } }; MWidget* pNewFrame = new MFrameBitmap("Bitmap Test", pMainFrame, pMainFrame); pNewFrame->SetBounds(0, 20, 200, 200); pNewFrame->Show(true); class MFrameInfo : public MFrame{ int m_nRenderCount; DWORD m_nPrevTime; int m_nFPS; protected: virtual void OnDraw(MDrawContext* pDC){ MFrame::OnDraw(pDC); MRECT r = GetClientRect(); char temp[256]; pDC->SetColor(MCOLOR(255,255,255)); // FPS DWORD nCurrTime = timeGetTime(); if(nCurrTime-m_nPrevTime>1000){ m_nFPS = m_nRenderCount; m_nPrevTime = nCurrTime; m_nRenderCount = 0; } m_nRenderCount++; sprintf(temp, "FPS = %d", m_nFPS); pDC->Text(r.x, r.y, temp); // Cursor Pos /* POINT p; GetCursorPos(&p); ScreenToClient(m_hWnd, &p); */ MPOINT p = MEvent::GetMousePos(); sprintf(temp, "Cursor Pos = %d, %d", p.x, p.y); pDC->Text(r.x, r.y+GetFont()->GetHeight(), temp); } public: MFrameInfo(const char* szName=NULL, MWidget* pParent=NULL, MListener* pListener=NULL) : MFrame(szName, pParent, pListener){ m_nRenderCount = 0; m_nPrevTime = timeGetTime(); m_nFPS = 0; } virtual ~MFrameInfo(void){ } }; MWidget* pNewCursorInfo = new MFrameInfo("Á¤º¸", pMainFrame, pMainFrame); pNewCursorInfo->SetBounds(400, 0, 200, 200); pNewCursorInfo->Show(true); class MFrameStar : public MFrame{ protected: virtual void OnDraw(MDrawContext* pDC){ MFrame::OnDraw(pDC); MRECT r = GetClientRect(); int nRawSize = sizeof(szStar)/sizeof(char*); static int nRaw = 0; pDC->SetColor(MCOLOR(128,128,255)); for(int i=0; i<20; i++){ pDC->Text(r.x, r.y+i*(GetFont()->GetHeight()+2), szStar[(nRaw+i)%nRawSize]); } nRaw++; nRaw%=nRawSize; } virtual bool OnCommand(MWidget* pWidget, const char* szMessage){ /* if(pWidget->GetID()==MGetResourceID("ID_OK") && IsMsg(szMessage, MBTN_CLK_MSG)==true){ Hide(); } */ return false; } public: MFrameStar(const char* szName=NULL, MWidget* pParent=NULL, MListener* pListener=NULL) : MFrame(szName, pParent, pListener){ } virtual ~MFrameStar(void){ } }; MWidget* pNewStar = new MFrameStar("º° Çì´Â ¹ã", pMainFrame, pMainFrame); pNewStar->SetBounds(30, 250, 500, 200); pNewStar->Show(true); MPopupMenu* pNewMenu = new MPopupMenu("SampleMenu", pMainFrame, pMainFrame, MPMT_HORIZONTAL); MMenuItem* pFile = pNewMenu->AddMenuItem("File"); MMenuItem* pWidget = pNewMenu->AddMenuItem("Widget"); MPopupMenu* pFileMenu = pFile->CreateSubMenu(); MPopupMenu* pWidgetMenu = pWidget->CreateSubMenu(); pFileMenu->AddMenuItem("Open"); pFileMenu->AddMenuItem("Exit"); pWidgetMenu->AddMenuItem("Info"); pWidgetMenu->AddMenuItem("º°Çì´Â¹ã"); pNewMenu->SetBounds(0, 0, MGetWorkspaceWidth(), 16); pNewMenu->Show(0, 0, true); pNewMenu->Show(true); }