const wxString& label,
const wxPoint& pos,
const wxSize& size,
- int groupID)
+ uint8_t groupID)
{
FormType* form = GetParentForm();
if(form==NULL)
return false;
+
+ wxCoord x = pos.x == wxDefaultCoord ? 0 : pos.x,
+ y = pos.y == wxDefaultCoord ? 0 : pos.y,
+ w = size.x == wxDefaultCoord ? 1 : size.x,
+ h = size.y == wxDefaultCoord ? 1 : size.y;
+
+ wxWindow *win = this;
+ while(win->GetParent())
+ {
+ win = win->GetParent();
+ wxPoint pt(win->GetClientAreaOrigin());
+ x += pt.x;
+ y += pt.y;
+ }
+
ControlType *control = CtlNewControl(
(void **)&form,
GetId(),
style,
wxEmptyString,
- ( pos.x == wxDefaultCoord ) ? winUndefConstraint : pos.x,
- ( pos.y == wxDefaultCoord ) ? winUndefConstraint : pos.y,
- ( size.x == wxDefaultCoord ) ? winUndefConstraint : size.x,
- ( size.y == wxDefaultCoord ) ? winUndefConstraint : size.y,
+ x,
+ y,
+ w,
+ h,
stdFont,
groupID,
true
m_palmControl = true;
+ SetInitialBestSize(size);
SetLabel(label);
Show();
return true;
m_label = label;
+ wxCoord x = pos.x == wxDefaultCoord ? 0 : pos.x,
+ y = pos.y == wxDefaultCoord ? 0 : pos.y,
+ w = size.x == wxDefaultCoord ? 1 : size.x,
+ h = size.y == wxDefaultCoord ? 1 : size.y;
+
+ AdjustForParentClientOrigin(x, y);
+
FieldType *field = FldNewField(
(void **)&form,
GetId(),
- ( pos.x == wxDefaultCoord ) ? winUndefConstraint : pos.x,
- ( pos.y == wxDefaultCoord ) ? winUndefConstraint : pos.y,
- ( size.x == wxDefaultCoord ) ? winUndefConstraint : size.x,
- ( size.y == wxDefaultCoord ) ? winUndefConstraint : size.y,
+ x,
+ y,
+ w,
+ h,
stdFont,
10,
editable,
m_palmField = true;
- Show();
+ SetInitialBestSize(size);
SetLabel(label);
+ Show();
return true;
}
FrmGetObjectBounds(form,index,&rect);
}
+void wxControl::DoSetBounds( RectangleType &rect )
+{
+ FormType* form = GetParentForm();
+ if(form==NULL)
+ return;
+ uint16_t index = FrmGetObjectIndex(form,GetId());
+ if(index==frmInvalidObjectId)
+ return;
+ FrmSetObjectBounds(form,index,&rect);
+}
+
void wxControl::DoGetPosition( int *x, int *y ) const
{
+ int ox = 0, oy = 0;
+ AdjustForParentClientOrigin(ox, oy);
+
RectangleType rect;
DoGetBounds(rect);
+
if(x)
- *x = rect.topLeft.x;
+ *x = rect.topLeft.x - ox;
if(y)
- *y = rect.topLeft.y;
+ *y = rect.topLeft.y - oy;
}
void wxControl::DoGetSize( int *width, int *height ) const
{
RectangleType rect;
DoGetBounds(rect);
+
if(width)
*width = rect.extent.x;
if(height)
*height = rect.extent.y;
}
+void wxControl::DoMoveWindow(int x, int y, int width, int height)
+{
+ wxRect area = GetRect();
+ RectangleType rect;
+ rect.topLeft.x = x;
+ rect.topLeft.y = y;
+ rect.extent.x = width;
+ rect.extent.y = height;
+ DoSetBounds(rect);
+ GetParent()->Refresh(true, &area);
+}
+
bool wxControl::Enable(bool enable)
{
ControlType *control = (ControlType *)GetObjectPtr();
- if( (IsPalmControl()) || (control == NULL))
+ if( !IsPalmControl() || (control == NULL))
return false;
if( CtlEnabled(control) == enable)
return false;
bool wxControl::IsEnabled() const
{
ControlType *control = (ControlType *)GetObjectPtr();
- if( (IsPalmControl()) || (control == NULL))
+ if( !IsPalmControl() || (control == NULL))
return false;
return CtlEnabled(control);
}
{
}
-WXHBRUSH wxControl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
- WXUINT WXUNUSED(message),
- WXWPARAM WXUNUSED(wParam),
- WXLPARAM WXUNUSED(lParam)
- )
-{
- return (WXHBRUSH)0;
-}
-
-// ---------------------------------------------------------------------------
-// global functions
-// ---------------------------------------------------------------------------
-
#endif // wxUSE_CONTROLS