ultimatepp/rainbow/Gtk/Top.cpp
cxl 97f1e3f2df .developing Gtk
git-svn-id: svn://ultimatepp.org/upp/trunk@5651 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2012-12-18 19:22:43 +00:00

117 lines
1.8 KiB
C++

#include <CtrlCore/CtrlCore.h>
#ifdef GUI_GTK
NAMESPACE_UPP
#define LLOG(x) // LOG(x)
void TopWindow::SyncSizeHints()
{
GuiLock __;
if(!top)
return;
GdkGeometry m;
Size sz0 = GetRect().GetSize();
DDUMP(sz0);
Size sz = sz0;
if(sizeable)
sz = GetMinSize();
// sz = Size(50, 50);
DDUMP(sz);
m.min_width = sz.cx;
m.min_height = sz.cy;
sz = sz0;
if(sizeable)
sz = GetMaxSize();
DDUMP(sz);
m.max_width = sz.cx;
m.max_height = sz.cy;
// TODO!!!
gtk_window_set_resizable(gtk(), sizeable);
gtk_window_set_geometry_hints(gtk(), top->window, &m, GdkWindowHints(GDK_HINT_MIN_SIZE|GDK_HINT_MAX_SIZE));
}
void TopWindow::SyncTitle0()
{
GuiLock __;
if(top)
gtk_window_set_title(gtk(), FromUnicode(title, CHARSET_UTF8));
}
void TopWindow::SyncCaption0()
{
GuiLock __;
SyncTitle0();
if(top && gdk_icon.Set(icon))
gtk_window_set_icon(gtk(), gdk_icon);
}
void TopWindow::Open(Ctrl *owner)
{
GuiLock __;
if(GetSize().cx == 0)
SetRect(10, 10, 400, 400);
Create(owner, false);
SyncSizeHints();
SyncCaption();
}
void TopWindow::Open()
{
Open(NULL); //TODO!
}
void TopWindow::OpenMain()
{
Open(NULL);
}
void TopWindow::Minimize(bool effect)
{
state = MINIMIZED;
}
TopWindow& TopWindow::FullScreen(bool b)
{
return *this;
}
void TopWindow::Maximize(bool effect)
{
state = MAXIMIZED;
}
void TopWindow::Overlap(bool effect)
{
GuiLock __;
state = OVERLAPPED;
}
TopWindow& TopWindow::TopMost(bool b, bool stay_top)
{
GuiLock __;
return *this;
}
bool TopWindow::IsTopMost() const
{
return true;
}
void TopWindow::GuiPlatformConstruct()
{
}
void TopWindow::GuiPlatformDestruct()
{
}
void TopWindow::SerializePlacement(Stream& s, bool reminimize)
{
GuiLock __;
}
END_UPP_NAMESPACE
#endif