102 lines
1.7 KiB
C++
102 lines
1.7 KiB
C++
// Windows/Window.cpp
|
|
|
|
#include "StdAfx.h"
|
|
|
|
// For compilers that support precompilation, includes "wx/wx.h".
|
|
#include "wx/wxprec.h"
|
|
|
|
#ifdef __BORLANDC__
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
// for all others, include the necessary headers (this file is usually all you
|
|
// need because it includes almost all "standard" wxWidgets headers)
|
|
#ifndef WX_PRECOMP
|
|
#include "wx/wx.h"
|
|
#endif
|
|
|
|
#undef _WIN32
|
|
|
|
#ifndef _UNICODE
|
|
#include "Common/StringConvert.h"
|
|
#endif
|
|
#include "Windows/Window.h"
|
|
|
|
void verify_main_thread(void);
|
|
|
|
class LockGUI
|
|
{
|
|
bool _IsMain;
|
|
public:
|
|
LockGUI() {
|
|
verify_main_thread();
|
|
|
|
_IsMain = wxThread::IsMain();
|
|
if (!_IsMain) {
|
|
printf("LockGUI-Windows\n");
|
|
abort(); // FIXME wxMutexGuiEnter();
|
|
}
|
|
}
|
|
~LockGUI() { if (!_IsMain) wxMutexGuiLeave(); }
|
|
};
|
|
|
|
namespace NWindows {
|
|
|
|
HWND GetDlgItem(HWND dialogWindow, int ControlID)
|
|
{
|
|
LockGUI lock;
|
|
if (dialogWindow) return dialogWindow->FindWindow(ControlID);
|
|
return 0;
|
|
}
|
|
|
|
void MySetWindowText(HWND wnd, LPCWSTR s)
|
|
{
|
|
if (wnd == 0) return;
|
|
|
|
LockGUI lock;
|
|
|
|
wxString str = s;
|
|
/*
|
|
int id = wnd->GetId();
|
|
if ( (id != wxID_OK) && (id != wxID_CANCEL) && (id != wxID_HELP) && (id != wxID_YES) && (id != wxID_NO))
|
|
*/
|
|
{
|
|
wnd->SetLabel(str);
|
|
}
|
|
}
|
|
|
|
bool CWindow::GetText(CSysString &s)
|
|
{
|
|
wxString str;
|
|
{
|
|
LockGUI lock;
|
|
str = _window->GetLabel();
|
|
}
|
|
s = str;
|
|
return true;
|
|
}
|
|
|
|
bool CWindow::IsEnabled()
|
|
{
|
|
LockGUI lock;
|
|
return _window->IsEnabled();
|
|
}
|
|
}
|
|
|
|
////////////////////////////////// Windows Compatibility
|
|
#include <sys/resource.h>
|
|
|
|
void Sleep(unsigned millisec)
|
|
{
|
|
wxMilliSleep(millisec);
|
|
}
|
|
|
|
t_processID GetCurrentProcess(void) {
|
|
return getpid();
|
|
}
|
|
|
|
void SetPriorityClass(t_processID pid , int priority) {
|
|
setpriority(PRIO_PROCESS,pid,priority);
|
|
}
|
|
|