⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 control.cxx

📁 windows mobile phone source code
💻 CXX
📖 第 1 页 / 共 3 页
字号:

PCheckBox::PCheckBox(PInteractor * parent, BOOL value)
  : PCheck3WayBox(parent)
{
  SetValue(value);
}


PCheckBox::PCheckBox(PInteractor * parent, const PString & name, BOOL value)
  : PCheck3WayBox(parent)
{
  SetName(name);
  SetValue(value);
  DefaultDimensions();
}


PCheckBox::PCheckBox(PInteractor * parent,
                                const PString & name, const PNotifier & notify)
  : PCheck3WayBox(parent)
{
  SetName(name);
  SetNotifier(notify);
  DefaultDimensions();
}


void PCheckBox::TransferValue(int option)
{
  if (valuePointer != NULL)
    if (option == NotifyUpdate)
      SetValue(*(BOOL *)valuePointer);
    else
      *(BOOL *)valuePointer = GetValue();
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PRadioButton

#if defined(_PRADIOBUTTON)

PRadioButton::PRadioButton(PInteractor * parent)
  : PNamedControl(parent)
{
  group.DisallowDeleteObjects();
  group.Append(this);
  Construct();
}


PRadioButton::PRadioButton(PInteractor * parent, const PString & name)
  : PNamedControl(parent)
{
  group.DisallowDeleteObjects();
  group.Append(this);
  Construct();

  SetName(name);
  DefaultDimensions();
}


PRadioButton::PRadioButton(PInteractor * parent,
                           const PString & name, const PNotifier & notify)
  : PNamedControl(parent)
{
  group.DisallowDeleteObjects();
  group.Append(this);
  Construct();

  SetName(name);
  SetNotifier(notify);
  DefaultDimensions();
}


PRadioButton::PRadioButton(PInteractor * parent,
                             const PString & name, PRadioButton & groupButton)
  : PNamedControl(parent)
{
  Construct();
  AddToGroup(groupButton);

  SetName(name);
  DefaultDimensions();
}


PRadioButton::PRadioButton(PInteractor * parent, const PString & name,
                          const PNotifier & notify, PRadioButton & groupButton)
  : PNamedControl(parent)
{
  Construct();
  AddToGroup(groupButton);

  SetName(name);
  SetNotifier(notify);
  DefaultDimensions();
}


void PRadioButton::AddToGroup(PRadioButton & groupButton)
{
  group = groupButton.group;
  group.Append(this);
}


void PRadioButton::DefaultDimensions()
{
  PDrawCanvas canvas(this);
  PDim dim = canvas.MeasureString(GetName());
  dim.AddWidth(16); // Allow 4 font width left of text
  dim.AddHeight(4); // Allow 1/4 font height above and below text
  SetDimensions(dim, LocalCoords); // Allow 1/4 font height above and below text
}


void PRadioButton::TransferValue(int option)
{
  if (option == NotifyUpdate) {
    if (valuePointer != NULL)
      SetValue(*(PINDEX *)valuePointer);
  }
  else {
    for (PINDEX i = 0; i < group.GetSize(); i++)
      if (group[i].valuePointer != NULL)
        *(PINDEX *)group[i].valuePointer = GetValue();
  }
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PChoiceBox

#if defined(_PCHOICEBOX)

PChoiceBox::PChoiceBox(PInteractor * parent, StringSorting sorted)
  : PControl(parent, PNotifier(), NULL)
{
  sort = sorted == Sorted;
  Construct();
}


PChoiceBox::PChoiceBox(PInteractor * parent,
                                const PNotifier & notify, StringSorting sorted)
  : PControl(parent, notify, NULL)
{
  sort = sorted == Sorted;
  Construct();
}


void PChoiceBox::AddStrings(const PCollection & objects)
{
  PINDEX last = objects.GetSize() - 1;
  for (PINDEX i = 0; i <= last; i++) {
    PObject & obj = *objects.GetAt(i);
    if (obj.IsDescendant(PString::Class()))
      AddString((PString &)obj);
    else {
      PStringStream str;
      str << obj;
      AddString(str);
    }
  }
}


void PChoiceBox::TransferValue(int option)
{
  if (valuePointer != NULL)
    if (option == NotifyUpdate)
      SetSelection(*(PINDEX *)valuePointer);
    else
      *(PINDEX *)valuePointer = GetSelection();
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PListBox

#if defined(_PLISTBOX)

PListBox::PListBox(PInteractor * parent,
                   StringSorting sorted,
                   SelectType select,
                   PDIMENSION columnWidth,
                   BOOL deleteObj)
  : PControl(parent, PNotifier(), NULL)
{
  sort = sorted == Sorted;
  multi = select == MultiSelect;
  width = columnWidth;
  deleteObjects = deleteObj;
  Construct();
}


PListBox::PListBox(PInteractor * parent,
                   const PNotifier & notify,
                   StringSorting sorted,
                   SelectType select,
                   PDIMENSION columnWidth,
                   BOOL deleteObj)
  : PControl(parent, notify, NULL)
{
  sort = sorted == Sorted;
  multi = select == MultiSelect;
  width = columnWidth;
  deleteObjects = deleteObj;
  Construct();
}


void PListBox::TransferValue(int option)
{
  if (valuePointer != NULL)
    if (option == NotifyUpdate)
      SetSelection(*(PINDEX *)valuePointer);
    else
      *(PINDEX *)valuePointer = GetSelection();
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PStringListBox

#if defined(_PSTRINGLISTBOX)

void PStringListBox::AddStrings(const PCollection & objects, BOOL update)
{
  PINDEX last = objects.GetSize() - 1;
  for (PINDEX i = 0; i <= last; i++) {
    PObject & obj = *objects.GetAt(i);
    if (obj.IsDescendant(PString::Class()))
      AddString((PString &)obj, update && i < last);
    else {
      PStringStream str;
      str << obj;
      AddString(str, update && i < last);
    }
  }
}


void PStringListBox::SetString(const PString & str, PINDEX index, BOOL update)
{
  DeleteString(index, FALSE);
  InsertString(str, index, update);
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PCustomListBox

#if defined(_PCUSTOMLISTBOX)

void PCustomListBox::AddEntries(const PCollection & objects, BOOL update)
{
  PINDEX last = objects.GetSize() - 1;
  for (PINDEX i = 0; i <= last; i++)
    AddEntry(objects.GetAt(i), update && i < last);
}


PDim PCustomListBox::OnMeasureEntry(PINDEX, PObject &, PCanvas & canvas)
{
  return PDim(GetDimensions(LocalCoords).Width(),
              canvas.FromPointsY(canvas.GetFont().GetHeight())+1);
}

#endif



//////////////////////////////////////////////////////////////////////////////
// PComboBox

#if defined(_PCOMBOBOX)

PComboBox::PComboBox(PInteractor * parent, StringSorting sorted)
  : PControl(parent, PNotifier(), NULL)
{
  sort = sorted == Sorted;
  Construct();
}


PComboBox::PComboBox(PInteractor * parent,
                                const PNotifier & notify, StringSorting sorted)
  : PControl(parent, notify, NULL)
{
  sort = sorted == Sorted;
  Construct();
}


void PComboBox::AddStrings(const PCollection & objects)
{
  PINDEX last = objects.GetSize() - 1;
  for (PINDEX i = 0; i <= last; i++) {
    PObject & obj = *objects.GetAt(i);
    if (obj.IsDescendant(PString::Class()))
      AddString((PString &)obj);
    else {
      PStringStream str;
      str << obj;
      AddString(str);
    }
  }
}


void PComboBox::TransferValue(int option)
{
  if (valuePointer != NULL)
    if (option == NotifyUpdate)
      SetText(*(PString *)valuePointer);
    else if (option == NewSelection)
      *(PString *)valuePointer = GetString(GetCurrent());
    else if (option == EditChange)
      *(PString *)valuePointer = GetText();
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PScrollBar

#if defined(_PSCROLLBAR)

PScrollBar::PScrollBar(PInteractor * parent,
              PSCROLLBAR_VALUE max, PSCROLLBAR_VALUE min, PSCROLLBAR_VALUE val,
              PSCROLLBAR_VALUE sml, PSCROLLBAR_VALUE lge)
  : PControl(parent, PNotifier(), NULL)
{
  maximum = max;
  minimum = min;
  value = val;
  smallNudge = sml;
  largeNudge = lge;
  Construct();
}


PScrollBar::PScrollBar(PInteractor * parent, const PNotifier & notify,
              PSCROLLBAR_VALUE max, PSCROLLBAR_VALUE min, PSCROLLBAR_VALUE val,
              PSCROLLBAR_VALUE sml, PSCROLLBAR_VALUE lge)
  : PControl(parent, notify, NULL)
{
  maximum = max;
  minimum = min;
  value = val;
  smallNudge = sml;
  largeNudge = lge;
  Construct();
}


void PScrollBar::TransferValue(int option)
{
  if (valuePointer != NULL)
    if (option == NotifyUpdate)
      SetValue(*(PSCROLLBAR_VALUE *)valuePointer);
    else
      *(PSCROLLBAR_VALUE *)valuePointer = GetValue();
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PHorizontalScrollBar

#if defined(_PHORIZONTALSCROLLBAR)

PHorizontalScrollBar::PHorizontalScrollBar(PInteractor * parent,
              PSCROLLBAR_VALUE max, PSCROLLBAR_VALUE min, PSCROLLBAR_VALUE val,
              PSCROLLBAR_VALUE sml, PSCROLLBAR_VALUE lge)
  : PScrollBar(parent, max, min, val, sml, lge)
{
}


PHorizontalScrollBar::PHorizontalScrollBar(PInteractor * parent,
              const PNotifier & notify,
              PSCROLLBAR_VALUE max, PSCROLLBAR_VALUE min, PSCROLLBAR_VALUE val,
              PSCROLLBAR_VALUE sml, PSCROLLBAR_VALUE lge)
  : PScrollBar(parent, notify, max, min, val, sml, lge)
{
}


#endif


//////////////////////////////////////////////////////////////////////////////
// PVerticalScrollBar

#if defined(_PVERTICALSCROLLBAR)

PVerticalScrollBar::PVerticalScrollBar(PInteractor * parent,
              PSCROLLBAR_VALUE max, PSCROLLBAR_VALUE min, PSCROLLBAR_VALUE val,
              PSCROLLBAR_VALUE sml, PSCROLLBAR_VALUE lge)
  : PScrollBar(parent, max, min, val, sml, lge)
{
}


PVerticalScrollBar::PVerticalScrollBar(PInteractor * parent,
              const PNotifier & notify,
              PSCROLLBAR_VALUE max, PSCROLLBAR_VALUE min, PSCROLLBAR_VALUE val,
              PSCROLLBAR_VALUE sml, PSCROLLBAR_VALUE lge)
  : PScrollBar(parent, notify, max, min, val, sml, lge)
{
}


#endif


#undef new


// End Of File ///////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -