// w32dlib - Win32 Control Helpers // // Copyright (C) 2005 Ian Cowburn (ianc@noddybox.demon.co.uk) // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program 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 General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------- // #include "w32dlib/control.h" #include "w32dlib/dialog.h" namespace W32DLib { // ------------------------------------------------------------ // Control::Control(Dialog *parent, int resource_id) : m_parent(parent), m_resid(resource_id), m_cblist() { } // ------------------------------------------------------------ // Control::~Control() { } // ------------------------------------------------------------ // int Control::ResourceID() { return m_resid; } // ------------------------------------------------------------ // void Control::SetText(const char *text) { } // ------------------------------------------------------------ // std::string Control::GetText(int maxlen) { char *buff=new char[maxlen+1]; std::string res; if (GetDlgItemText(m_parent->GetHWND(),m_resid,buff,maxlen)) { res=buff; } delete[] buff; return res; } // ------------------------------------------------------------ // BOOL Control::ProcessMessage(UINT msg, WPARAM wp, LPARAM lp) { if (m_cblist.count(msg)>0) { CallbackDetails details=m_cblist[msg]; W32DLibCallbackInterface *owner=details.owner; W32DLibCallback cb=details.cb; return (owner->*cb)(msg,wp,lp); } return false; } // ------------------------------------------------------------ // void Control::AddCallback(UINT msg, W32DLibCallbackInterface *owner, W32DLibCallback callback) { CallbackDetails details; details.owner=owner; details.cb=callback; m_cblist[msg]=details; } }; // namespace W32DLib // END OF FILE