Converts getHotkeyPos() for sharing into a non-member function
This commit is contained in:
parent
5a43a018cf
commit
44e157e493
|
@ -1,6 +1,7 @@
|
||||||
2019-08-11 Markus Gans <guru.mail@muenster.de>
|
2019-08-11 Markus Gans <guru.mail@muenster.de>
|
||||||
* FRect has now got a scaleBy() method
|
* FRect has now got a scaleBy() method
|
||||||
* Convert drawBorder() to a non-member function using FRect
|
* Convert drawBorder() to a non-member function using FRect
|
||||||
|
* Converts getHotkeyPos() for sharing into a non-member function
|
||||||
|
|
||||||
2019-08-10 Markus Gans <guru.mail@muenster.de>
|
2019-08-10 Markus Gans <guru.mail@muenster.de>
|
||||||
* Pitch and duration of system speaker can now be changed
|
* Pitch and duration of system speaker can now be changed
|
||||||
|
|
|
@ -58,6 +58,7 @@ class ColorChooser : public finalcut::FWidget
|
||||||
private:
|
private:
|
||||||
// Method
|
// Method
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
void drawBorder() override;
|
||||||
|
|
||||||
// Event handler
|
// Event handler
|
||||||
void onMouseDown (finalcut::FMouseEvent*) override;
|
void onMouseDown (finalcut::FMouseEvent*) override;
|
||||||
|
@ -130,7 +131,7 @@ void ColorChooser::onMouseDown (finalcut::FMouseEvent* ev)
|
||||||
void ColorChooser::draw()
|
void ColorChooser::draw()
|
||||||
{
|
{
|
||||||
setColor();
|
setColor();
|
||||||
finalcut::drawBorder (this, FRect(FPoint(1, 2), FSize(8, 10)));
|
drawBorder();
|
||||||
|
|
||||||
for (FColor c = 0; c < 16; c++)
|
for (FColor c = 0; c < 16; c++)
|
||||||
{
|
{
|
||||||
|
@ -152,6 +153,12 @@ void ColorChooser::draw()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void ColorChooser::drawBorder()
|
||||||
|
{
|
||||||
|
finalcut::drawBorder (this, FRect(FPoint(1, 2), FSize(8, 10)));
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline FColor ColorChooser::getForeground()
|
inline FColor ColorChooser::getForeground()
|
||||||
{
|
{
|
||||||
|
@ -197,6 +204,7 @@ class Brushes : public finalcut::FWidget
|
||||||
private:
|
private:
|
||||||
// Method
|
// Method
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
void drawBorder() override;
|
||||||
|
|
||||||
// Event handler
|
// Event handler
|
||||||
void onMouseDown (finalcut::FMouseEvent*) override;
|
void onMouseDown (finalcut::FMouseEvent*) override;
|
||||||
|
@ -238,13 +246,12 @@ Brushes::Brushes (finalcut::FWidget* parent)
|
||||||
Brushes::~Brushes()
|
Brushes::~Brushes()
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void Brushes::draw()
|
void Brushes::draw()
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
setColor();
|
setColor();
|
||||||
finalcut::drawBorder (this, FRect(FPoint(1, 2), FSize(8, 3)));
|
drawBorder();
|
||||||
print() << FPoint(2, 3)
|
print() << FPoint(2, 3)
|
||||||
<< FColorPair(fg_color, bg_color) << " "
|
<< FColorPair(fg_color, bg_color) << " "
|
||||||
<< finalcut::FString(3, fc::MediumShade);
|
<< finalcut::FString(3, fc::MediumShade);
|
||||||
|
@ -261,6 +268,12 @@ void Brushes::draw()
|
||||||
<< fc::BlackUpPointingTriangle;
|
<< fc::BlackUpPointingTriangle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void Brushes::drawBorder()
|
||||||
|
{
|
||||||
|
finalcut::drawBorder (this, FRect(FPoint(1, 2), FSize(8, 3)));
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void Brushes::onMouseDown (finalcut::FMouseEvent* ev)
|
void Brushes::onMouseDown (finalcut::FMouseEvent* ev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -449,31 +449,6 @@ inline void FButton::detectHotkey()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
std::size_t FButton::getHotkeyPos ( wchar_t src[]
|
|
||||||
, wchar_t dest[]
|
|
||||||
, std::size_t length )
|
|
||||||
{
|
|
||||||
// find hotkey position in string
|
|
||||||
// + generate a new string without the '&'-sign
|
|
||||||
wchar_t* txt = src;
|
|
||||||
std::size_t pos = NOT_SET;
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
if ( i < length && txt[i] == L'&' && pos == NOT_SET )
|
|
||||||
{
|
|
||||||
pos = i;
|
|
||||||
i++;
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dest++ = *src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline std::size_t FButton::clickAnimationIndent (FWidget* parent_widget)
|
inline std::size_t FButton::clickAnimationIndent (FWidget* parent_widget)
|
||||||
{
|
{
|
||||||
|
@ -689,7 +664,7 @@ void FButton::draw()
|
||||||
if ( flags.flat && ! button_down )
|
if ( flags.flat && ! button_down )
|
||||||
drawFlatBorder();
|
drawFlatBorder();
|
||||||
|
|
||||||
hotkeypos = getHotkeyPos(text.wc_str(), button_text, uInt(txtlength));
|
hotkeypos = finalcut::getHotkeyPos(text.wc_str(), button_text, uInt(txtlength));
|
||||||
|
|
||||||
if ( hotkeypos != NOT_SET )
|
if ( hotkeypos != NOT_SET )
|
||||||
txtlength--;
|
txtlength--;
|
||||||
|
|
|
@ -445,7 +445,7 @@ void FButtonGroup::drawLabel()
|
||||||
wchar_t* src = const_cast<wchar_t*>(txt.wc_str());
|
wchar_t* src = const_cast<wchar_t*>(txt.wc_str());
|
||||||
wchar_t* dest = const_cast<wchar_t*>(LabelText);
|
wchar_t* dest = const_cast<wchar_t*>(LabelText);
|
||||||
unsetViewportPrint();
|
unsetViewportPrint();
|
||||||
auto hotkeypos = getHotkeyPos(src, dest, length);
|
auto hotkeypos = finalcut::getHotkeyPos(src, dest, length);
|
||||||
|
|
||||||
if ( hotkeypos != NOT_SET )
|
if ( hotkeypos != NOT_SET )
|
||||||
length--;
|
length--;
|
||||||
|
@ -481,31 +481,6 @@ void FButtonGroup::init()
|
||||||
buttonlist.clear(); // no buttons yet
|
buttonlist.clear(); // no buttons yet
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
std::size_t FButtonGroup::getHotkeyPos ( wchar_t src[]
|
|
||||||
, wchar_t dest[]
|
|
||||||
, std::size_t length )
|
|
||||||
{
|
|
||||||
// find hotkey position in string
|
|
||||||
// + generate a new string without the '&'-sign
|
|
||||||
std::size_t pos = NOT_SET;
|
|
||||||
wchar_t* txt = src;
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
if ( i < length && txt[i] == L'&' && pos == NOT_SET )
|
|
||||||
{
|
|
||||||
pos = i;
|
|
||||||
i++;
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dest++ = *src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FButtonGroup::drawText ( wchar_t LabelText[]
|
void FButtonGroup::drawText ( wchar_t LabelText[]
|
||||||
, std::size_t hotkeypos
|
, std::size_t hotkeypos
|
||||||
|
|
|
@ -62,6 +62,9 @@ void FCheckBox::init()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FCheckBox::draw()
|
void FCheckBox::draw()
|
||||||
{
|
{
|
||||||
|
if ( ! isVisible() )
|
||||||
|
return;
|
||||||
|
|
||||||
drawCheckButton();
|
drawCheckButton();
|
||||||
drawLabel();
|
drawLabel();
|
||||||
FToggleButton::draw();
|
FToggleButton::draw();
|
||||||
|
@ -70,9 +73,6 @@ void FCheckBox::draw()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FCheckBox::drawCheckButton()
|
void FCheckBox::drawCheckButton()
|
||||||
{
|
{
|
||||||
if ( ! isVisible() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
print() << FPoint(1, 1);
|
print() << FPoint(1, 1);
|
||||||
setColor();
|
setColor();
|
||||||
|
|
||||||
|
@ -85,6 +85,16 @@ void FCheckBox::drawCheckButton()
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( checked )
|
if ( checked )
|
||||||
|
drawChecked();
|
||||||
|
else
|
||||||
|
drawUnchecked();
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FCheckBox::drawChecked()
|
||||||
{
|
{
|
||||||
if ( isNewFont() )
|
if ( isNewFont() )
|
||||||
print (CHECKBOX_ON);
|
print (CHECKBOX_ON);
|
||||||
|
@ -95,7 +105,9 @@ void FCheckBox::drawCheckButton()
|
||||||
print (']');
|
print (']');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FCheckBox::drawUnchecked()
|
||||||
{
|
{
|
||||||
if ( isNewFont() )
|
if ( isNewFont() )
|
||||||
print (CHECKBOX);
|
print (CHECKBOX);
|
||||||
|
@ -107,8 +119,4 @@ void FCheckBox::drawCheckButton()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace finalcut
|
} // namespace finalcut
|
||||||
|
|
|
@ -79,22 +79,7 @@ void FColorPalette::set16ColorPalette (funcp setPalette)
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FColorPalette::reset8ColorPalette (funcp setPalette)
|
void FColorPalette::reset8ColorPalette (funcp setPalette)
|
||||||
{
|
{
|
||||||
setPalette (fc::Black, 0x00, 0x00, 0x00);
|
reset16ColorPalette(setPalette);
|
||||||
setPalette (fc::Blue, 0x00, 0x00, 0xaa);
|
|
||||||
setPalette (fc::Green, 0x00, 0xaa, 0x00);
|
|
||||||
setPalette (fc::Cyan, 0x00, 0x55, 0xaa);
|
|
||||||
setPalette (fc::Red, 0xaa, 0x00, 0x00);
|
|
||||||
setPalette (fc::Magenta, 0xaa, 0x00, 0xaa);
|
|
||||||
setPalette (fc::Brown, 0xaa, 0xaa, 0x00);
|
|
||||||
setPalette (fc::LightGray, 0xaa, 0xaa, 0xaa);
|
|
||||||
setPalette (fc::DarkGray, 0x55, 0x55, 0x55);
|
|
||||||
setPalette (fc::LightBlue, 0x55, 0x55, 0xff);
|
|
||||||
setPalette (fc::LightGreen, 0x55, 0xff, 0x55);
|
|
||||||
setPalette (fc::LightCyan, 0x55, 0xff, 0xff);
|
|
||||||
setPalette (fc::LightRed, 0xff, 0x55, 0x55);
|
|
||||||
setPalette (fc::LightMagenta, 0xff, 0x55, 0xff);
|
|
||||||
setPalette (fc::Yellow, 0xff, 0xff, 0x55);
|
|
||||||
setPalette (fc::White, 0xff, 0xff, 0xff);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
|
@ -347,31 +347,6 @@ void FLabel::init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
std::size_t FLabel::getHotkeyPos ( wchar_t src[]
|
|
||||||
, wchar_t dest[]
|
|
||||||
, std::size_t length )
|
|
||||||
{
|
|
||||||
// find hotkey position in string
|
|
||||||
// + generate a new string without the '&'-sign
|
|
||||||
std::size_t hotkeypos = NOT_SET;
|
|
||||||
wchar_t* txt = src;
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
if ( i < length && txt[i] == L'&' && hotkeypos == NOT_SET )
|
|
||||||
{
|
|
||||||
hotkeypos = i;
|
|
||||||
i++;
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dest++ = *src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return hotkeypos;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FLabel::setHotkeyAccelerator()
|
void FLabel::setHotkeyAccelerator()
|
||||||
{
|
{
|
||||||
|
@ -478,7 +453,7 @@ void FLabel::drawMultiLine()
|
||||||
auto dest = const_cast<wchar_t*>(label_text);
|
auto dest = const_cast<wchar_t*>(label_text);
|
||||||
|
|
||||||
if ( ! hotkey_printed )
|
if ( ! hotkey_printed )
|
||||||
hotkeypos = getHotkeyPos(src, dest, length);
|
hotkeypos = finalcut::getHotkeyPos(src, dest, length);
|
||||||
else
|
else
|
||||||
std::wcsncpy(dest, src, length);
|
std::wcsncpy(dest, src, length);
|
||||||
|
|
||||||
|
@ -519,7 +494,7 @@ void FLabel::drawSingleLine()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
hotkeypos = getHotkeyPos (text.wc_str(), label_text, length);
|
hotkeypos = finalcut::getHotkeyPos (text.wc_str(), label_text, length);
|
||||||
|
|
||||||
if ( hotkeypos != NOT_SET )
|
if ( hotkeypos != NOT_SET )
|
||||||
length--;
|
length--;
|
||||||
|
|
|
@ -815,13 +815,6 @@ void FListBox::draw()
|
||||||
if ( isMonochron() )
|
if ( isMonochron() )
|
||||||
setReverse(true);
|
setReverse(true);
|
||||||
|
|
||||||
if ( isNewFont() )
|
|
||||||
{
|
|
||||||
FRect box(FPoint(1, 1), getSize());
|
|
||||||
box.scaleBy(-1, 0);
|
|
||||||
finalcut::drawBorder (this, box);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
drawBorder();
|
drawBorder();
|
||||||
|
|
||||||
if ( isNewFont() && ! vbar->isShown() )
|
if ( isNewFont() && ! vbar->isShown() )
|
||||||
|
@ -856,6 +849,19 @@ void FListBox::draw()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FListBox::drawBorder()
|
||||||
|
{
|
||||||
|
if ( isNewFont() )
|
||||||
|
{
|
||||||
|
FRect box(FPoint(1, 1), getSize());
|
||||||
|
box.scaleBy(-1, 0);
|
||||||
|
finalcut::drawBorder (this, box);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FWidget::drawBorder();
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FListBox::drawScrollbars()
|
void FListBox::drawScrollbars()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1475,13 +1475,6 @@ void FListView::draw()
|
||||||
if ( isMonochron() )
|
if ( isMonochron() )
|
||||||
setReverse(true);
|
setReverse(true);
|
||||||
|
|
||||||
if ( isNewFont() )
|
|
||||||
{
|
|
||||||
FRect box(FPoint(1, 1), getSize());
|
|
||||||
box.scaleBy(-1, 0);
|
|
||||||
finalcut::drawBorder (this, box);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
drawBorder();
|
drawBorder();
|
||||||
|
|
||||||
if ( isNewFont() && ! vbar->isShown() )
|
if ( isNewFont() && ! vbar->isShown() )
|
||||||
|
@ -1516,6 +1509,19 @@ void FListView::draw()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FListView::drawBorder()
|
||||||
|
{
|
||||||
|
if ( isNewFont() )
|
||||||
|
{
|
||||||
|
FRect box(FPoint(1, 1), getSize());
|
||||||
|
box.scaleBy(-1, 0);
|
||||||
|
finalcut::drawBorder (this, box);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FWidget::drawBorder();
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FListView::drawScrollbars()
|
void FListView::drawScrollbars()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1191,31 +1191,6 @@ bool FMenu::hotkeyMenu (FKeyEvent* ev)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
std::size_t FMenu::getHotkeyPos ( wchar_t src[]
|
|
||||||
, wchar_t dest[]
|
|
||||||
, std::size_t length )
|
|
||||||
{
|
|
||||||
// Find hotkey position in string
|
|
||||||
// + generate a new string without the '&'-sign
|
|
||||||
std::size_t pos = NOT_SET;
|
|
||||||
wchar_t* txt = src;
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
if ( i < length && txt[i] == L'&' && pos == NOT_SET )
|
|
||||||
{
|
|
||||||
pos = i;
|
|
||||||
i++;
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dest++ = *src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FMenu::draw()
|
void FMenu::draw()
|
||||||
{
|
{
|
||||||
|
@ -1313,7 +1288,7 @@ inline void FMenu::drawMenuLine (FMenuItem* menuitem, int y)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
hotkeypos = getHotkeyPos(txt.wc_str(), txtdata.text, txt_length);
|
hotkeypos = finalcut::getHotkeyPos(txt.wc_str(), txtdata.text, txt_length);
|
||||||
|
|
||||||
if ( hotkeypos != NOT_SET )
|
if ( hotkeypos != NOT_SET )
|
||||||
to_char--;
|
to_char--;
|
||||||
|
|
|
@ -467,31 +467,6 @@ bool FMenuBar::hotkeyMenu (FKeyEvent*& ev)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
std::size_t FMenuBar::getHotkeyPos ( wchar_t src[]
|
|
||||||
, wchar_t dest[]
|
|
||||||
, std::size_t length )
|
|
||||||
{
|
|
||||||
// find hotkey position in string
|
|
||||||
// + generate a new string without the '&'-sign
|
|
||||||
std::size_t hotkeypos = NOT_SET;
|
|
||||||
wchar_t* txt = src;
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
if ( i < length && txt[i] == L'&' && hotkeypos == NOT_SET )
|
|
||||||
{
|
|
||||||
hotkeypos = i;
|
|
||||||
i++;
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dest++ = *src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return hotkeypos;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FMenuBar::draw()
|
void FMenuBar::draw()
|
||||||
{
|
{
|
||||||
|
@ -561,7 +536,7 @@ inline void FMenuBar::drawItem (FMenuItem* menuitem, std::size_t& x)
|
||||||
else
|
else
|
||||||
to_char = txt_length - screenWidth - x - 1;
|
to_char = txt_length - screenWidth - x - 1;
|
||||||
|
|
||||||
hotkeypos = getHotkeyPos (txt.wc_str(), txtdata.text, txt_length);
|
hotkeypos = finalcut::getHotkeyPos (txt.wc_str(), txtdata.text, txt_length);
|
||||||
|
|
||||||
if ( hotkeypos != NOT_SET )
|
if ( hotkeypos != NOT_SET )
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,6 +62,9 @@ void FRadioButton::init()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FRadioButton::draw()
|
void FRadioButton::draw()
|
||||||
{
|
{
|
||||||
|
if ( ! isVisible() )
|
||||||
|
return;
|
||||||
|
|
||||||
drawRadioButton();
|
drawRadioButton();
|
||||||
drawLabel();
|
drawLabel();
|
||||||
FToggleButton::draw();
|
FToggleButton::draw();
|
||||||
|
@ -70,9 +73,6 @@ void FRadioButton::draw()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FRadioButton::drawRadioButton()
|
void FRadioButton::drawRadioButton()
|
||||||
{
|
{
|
||||||
if ( ! isVisible() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
print() << FPoint(1, 1);
|
print() << FPoint(1, 1);
|
||||||
setColor();
|
setColor();
|
||||||
|
|
||||||
|
@ -85,6 +85,16 @@ void FRadioButton::drawRadioButton()
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( checked )
|
if ( checked )
|
||||||
|
drawChecked();
|
||||||
|
else
|
||||||
|
drawUnchecked();
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FRadioButton::drawChecked()
|
||||||
{
|
{
|
||||||
if ( isNewFont() )
|
if ( isNewFont() )
|
||||||
print (CHECKED_RADIO_BUTTON);
|
print (CHECKED_RADIO_BUTTON);
|
||||||
|
@ -95,7 +105,9 @@ void FRadioButton::drawRadioButton()
|
||||||
print (')');
|
print (')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FRadioButton::drawUnchecked()
|
||||||
{
|
{
|
||||||
if ( isNewFont() )
|
if ( isNewFont() )
|
||||||
print (RADIO_BUTTON);
|
print (RADIO_BUTTON);
|
||||||
|
@ -107,8 +119,4 @@ void FRadioButton::drawRadioButton()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace finalcut
|
} // namespace finalcut
|
||||||
|
|
|
@ -235,120 +235,7 @@ void FScrollbar::calculateSliderValues()
|
||||||
slider_pos = int(bar_length - slider_length);
|
slider_pos = int(bar_length - slider_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
void FScrollbar::drawVerticalBar()
|
|
||||||
{
|
|
||||||
int z;
|
|
||||||
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
|
||||||
|
|
||||||
for (z = 1; z <= slider_pos; z++)
|
|
||||||
{
|
|
||||||
print() << FPoint(1, 1 + z);
|
|
||||||
|
|
||||||
if ( isNewFont() )
|
|
||||||
{
|
|
||||||
if ( isMonochron() || max_color < 16 )
|
|
||||||
print (fc::MediumShade); // ▒
|
|
||||||
else
|
|
||||||
print (fc::NF_border_line_left); // ⎸
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMonochron() || max_color < 16 )
|
|
||||||
print (fc::MediumShade); // ▒
|
|
||||||
else
|
|
||||||
print (' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
setColor (wc.scrollbar_bg, wc.scrollbar_fg);
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(false);
|
|
||||||
|
|
||||||
for (z = 1; z <= int(slider_length); z++)
|
|
||||||
{
|
|
||||||
print() << FPoint(1, 1 + slider_pos + z);
|
|
||||||
|
|
||||||
if ( isNewFont() )
|
|
||||||
print (' ');
|
|
||||||
|
|
||||||
print (' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(true);
|
|
||||||
|
|
||||||
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
|
||||||
|
|
||||||
for (z = slider_pos + int(slider_length) + 1; z <= int(bar_length); z++)
|
|
||||||
{
|
|
||||||
print() << FPoint(1, 1 + z);
|
|
||||||
|
|
||||||
if ( isNewFont() )
|
|
||||||
{
|
|
||||||
if ( isMonochron() || max_color < 16 )
|
|
||||||
print (fc::MediumShade); // ▒
|
|
||||||
else
|
|
||||||
print (fc::NF_border_line_left); // ⎸
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMonochron() || max_color < 16 )
|
|
||||||
print (fc::MediumShade);
|
|
||||||
else
|
|
||||||
print (' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
void FScrollbar::drawHorizontalBar()
|
|
||||||
{
|
|
||||||
int z;
|
|
||||||
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
|
||||||
|
|
||||||
if ( isNewFont() )
|
|
||||||
print() << FPoint(3, 1);
|
|
||||||
else
|
|
||||||
print() << FPoint(2, 1);
|
|
||||||
|
|
||||||
for (z = 0; z < slider_pos; z++)
|
|
||||||
{
|
|
||||||
if ( isNewFont() && max_color > 8 )
|
|
||||||
print (fc::NF_border_line_upper); // ¯
|
|
||||||
else if ( isMonochron() || max_color < 16 )
|
|
||||||
print (fc::MediumShade); // ▒
|
|
||||||
else
|
|
||||||
print (' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
setColor (wc.scrollbar_bg, wc.scrollbar_fg);
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(false);
|
|
||||||
|
|
||||||
for (z = 0; z < int(slider_length); z++)
|
|
||||||
print (' ');
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(true);
|
|
||||||
|
|
||||||
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
|
||||||
z = slider_pos + int(slider_length) + 1;
|
|
||||||
|
|
||||||
for (; z <= int(bar_length); z++)
|
|
||||||
{
|
|
||||||
if ( isNewFont() && max_color > 8 )
|
|
||||||
print (fc::NF_border_line_upper); // ¯
|
|
||||||
else if ( isMonochron() || max_color < 16 )
|
|
||||||
print (fc::MediumShade); // ▒
|
|
||||||
else
|
|
||||||
print (' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
|
||||||
setReverse(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FScrollbar::drawBar()
|
void FScrollbar::drawBar()
|
||||||
|
@ -586,6 +473,111 @@ void FScrollbar::draw()
|
||||||
drawBar();
|
drawBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FScrollbar::drawVerticalBar()
|
||||||
|
{
|
||||||
|
int z;
|
||||||
|
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
||||||
|
|
||||||
|
for (z = 1; z <= slider_pos; z++)
|
||||||
|
{
|
||||||
|
print() << FPoint(1, 1 + z);
|
||||||
|
drawVerticalBackgroundLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
setColor (wc.scrollbar_bg, wc.scrollbar_fg);
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(false);
|
||||||
|
|
||||||
|
for (z = 1; z <= int(slider_length); z++) // Draw slider
|
||||||
|
{
|
||||||
|
print() << FPoint(1, 1 + slider_pos + z);
|
||||||
|
|
||||||
|
if ( isNewFont() )
|
||||||
|
print (' ');
|
||||||
|
|
||||||
|
print (' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(true);
|
||||||
|
|
||||||
|
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
||||||
|
|
||||||
|
for (z = slider_pos + int(slider_length) + 1; z <= int(bar_length); z++)
|
||||||
|
{
|
||||||
|
print() << FPoint(1, 1 + z);
|
||||||
|
drawVerticalBackgroundLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FScrollbar::drawVerticalBackgroundLine()
|
||||||
|
{
|
||||||
|
if ( isNewFont() )
|
||||||
|
{
|
||||||
|
if ( isMonochron() || max_color < 16 )
|
||||||
|
print (fc::MediumShade); // ▒
|
||||||
|
else
|
||||||
|
print (fc::NF_border_line_left); // ⎸
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isMonochron() || max_color < 16 )
|
||||||
|
print (fc::MediumShade); // ▒
|
||||||
|
else
|
||||||
|
print (' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FScrollbar::drawHorizontalBar()
|
||||||
|
{
|
||||||
|
int z;
|
||||||
|
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
||||||
|
|
||||||
|
if ( isNewFont() )
|
||||||
|
print() << FPoint(3, 1);
|
||||||
|
else
|
||||||
|
print() << FPoint(2, 1);
|
||||||
|
|
||||||
|
for (z = 0; z < slider_pos; z++)
|
||||||
|
drawHorizontalBackgroundColumn();
|
||||||
|
|
||||||
|
setColor (wc.scrollbar_bg, wc.scrollbar_fg);
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(false);
|
||||||
|
|
||||||
|
for (z = 0; z < int(slider_length); z++) // Draw slider
|
||||||
|
print (' ');
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(true);
|
||||||
|
|
||||||
|
setColor (wc.scrollbar_fg, wc.scrollbar_bg);
|
||||||
|
z = slider_pos + int(slider_length) + 1;
|
||||||
|
|
||||||
|
for (; z <= int(bar_length); z++)
|
||||||
|
drawHorizontalBackgroundColumn();
|
||||||
|
|
||||||
|
if ( isMonochron() )
|
||||||
|
setReverse(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FScrollbar::drawHorizontalBackgroundColumn()
|
||||||
|
{
|
||||||
|
if ( isNewFont() && max_color > 8 )
|
||||||
|
print (fc::NF_border_line_upper); // ¯
|
||||||
|
else if ( isMonochron() || max_color < 16 )
|
||||||
|
print (fc::MediumShade); // ▒
|
||||||
|
else
|
||||||
|
print (' ');
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FScrollbar::drawButtons()
|
void FScrollbar::drawButtons()
|
||||||
{
|
{
|
||||||
|
|
|
@ -430,16 +430,7 @@ void FScrollView::draw()
|
||||||
setColor();
|
setColor();
|
||||||
|
|
||||||
if ( border )
|
if ( border )
|
||||||
{
|
|
||||||
if ( isNewFont() )
|
|
||||||
{
|
|
||||||
FRect box(FPoint(1, 1), getSize());
|
|
||||||
box.scaleBy(-1, 0);
|
|
||||||
finalcut::drawBorder (this, box);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
drawBorder();
|
drawBorder();
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMonochron() )
|
if ( isMonochron() )
|
||||||
setReverse(false);
|
setReverse(false);
|
||||||
|
@ -457,6 +448,19 @@ void FScrollView::draw()
|
||||||
hbar->redraw();
|
hbar->redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FScrollView::drawBorder()
|
||||||
|
{
|
||||||
|
if ( isNewFont() )
|
||||||
|
{
|
||||||
|
FRect box(FPoint(1, 1), getSize());
|
||||||
|
box.scaleBy(-1, 0);
|
||||||
|
finalcut::drawBorder (this, box);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FWidget::drawBorder();
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FScrollView::onKeyPress (FKeyEvent* ev)
|
void FScrollView::onKeyPress (FKeyEvent* ev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -117,6 +117,9 @@ void FSwitch::onMouseUp (FMouseEvent* ev)
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FSwitch::draw()
|
void FSwitch::draw()
|
||||||
{
|
{
|
||||||
|
if ( ! isVisible() )
|
||||||
|
return;
|
||||||
|
|
||||||
drawLabel();
|
drawLabel();
|
||||||
drawCheckButton();
|
drawCheckButton();
|
||||||
FToggleButton::draw();
|
FToggleButton::draw();
|
||||||
|
@ -127,9 +130,6 @@ void FSwitch::draw()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FSwitch::drawCheckButton()
|
void FSwitch::drawCheckButton()
|
||||||
{
|
{
|
||||||
if ( ! isVisible() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
print() << FPoint(1 + int(switch_offset_pos), 1);
|
print() << FPoint(1 + int(switch_offset_pos), 1);
|
||||||
|
|
||||||
if ( checked )
|
if ( checked )
|
||||||
|
@ -139,7 +139,7 @@ void FSwitch::drawCheckButton()
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FSwitch::drawChecked()
|
inline void FSwitch::drawChecked()
|
||||||
{
|
{
|
||||||
wchar_t on[6] = L" On ";
|
wchar_t on[6] = L" On ";
|
||||||
wchar_t off[6] = L" Off ";
|
wchar_t off[6] = L" Off ";
|
||||||
|
@ -188,7 +188,7 @@ void FSwitch::drawChecked()
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FSwitch::drawUnchecked()
|
inline void FSwitch::drawUnchecked()
|
||||||
{
|
{
|
||||||
wchar_t on[6] = L" On ";
|
wchar_t on[6] = L" On ";
|
||||||
wchar_t off[6] = L" Off ";
|
wchar_t off[6] = L" Off ";
|
||||||
|
|
|
@ -569,17 +569,9 @@ void FTermXTerminal::setXTerm8ColorDefaults()
|
||||||
if ( term_detection->isPuttyTerminal() )
|
if ( term_detection->isPuttyTerminal() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setMouseBackground("rgb:ffff/ffff/ffff"); // white
|
setXTermDefaultsMouseCursor();
|
||||||
setMouseForeground ("rgb:0000/0000/0000"); // black
|
|
||||||
|
|
||||||
if ( ! term_detection->isGnomeTerminal() )
|
if ( canSetXTermBackground() )
|
||||||
setCursorColor("rgb:ffff/ffff/ffff"); // white
|
|
||||||
|
|
||||||
if ( xterm_default_colors
|
|
||||||
&& ! (term_detection->isMinttyTerm()
|
|
||||||
|| term_detection->isMltermTerminal()
|
|
||||||
|| term_detection->isRxvtTerminal()
|
|
||||||
|| term_detection->isScreenTerm()) )
|
|
||||||
{
|
{
|
||||||
// mintty and rxvt can't reset these settings
|
// mintty and rxvt can't reset these settings
|
||||||
setBackground("rgb:2222/2222/b2b2"); // blue
|
setBackground("rgb:2222/2222/b2b2"); // blue
|
||||||
|
@ -597,17 +589,9 @@ void FTermXTerminal::setXTerm16ColorDefaults()
|
||||||
if ( term_detection->isPuttyTerminal() )
|
if ( term_detection->isPuttyTerminal() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setMouseBackground("rgb:ffff/ffff/ffff"); // white
|
setXTermDefaultsMouseCursor();
|
||||||
setMouseForeground ("rgb:0000/0000/0000"); // black
|
|
||||||
|
|
||||||
if ( ! term_detection->isGnomeTerminal() )
|
if ( canSetXTermBackground() )
|
||||||
setCursorColor("rgb:ffff/ffff/ffff"); // white
|
|
||||||
|
|
||||||
if ( xterm_default_colors
|
|
||||||
&& ! (term_detection->isMinttyTerm()
|
|
||||||
|| term_detection->isMltermTerminal()
|
|
||||||
|| term_detection->isRxvtTerminal()
|
|
||||||
|| term_detection->isScreenTerm()) )
|
|
||||||
{
|
{
|
||||||
// mintty and rxvt can't reset these settings
|
// mintty and rxvt can't reset these settings
|
||||||
setBackground("rgb:8080/a4a4/ecec"); // very light blue
|
setBackground("rgb:8080/a4a4/ecec"); // very light blue
|
||||||
|
@ -616,6 +600,29 @@ void FTermXTerminal::setXTerm16ColorDefaults()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FTermXTerminal::setXTermDefaultsMouseCursor()
|
||||||
|
{
|
||||||
|
setMouseBackground("rgb:ffff/ffff/ffff"); // white
|
||||||
|
setMouseForeground ("rgb:0000/0000/0000"); // black
|
||||||
|
|
||||||
|
if ( ! term_detection->isGnomeTerminal() )
|
||||||
|
setCursorColor("rgb:ffff/ffff/ffff"); // white
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline bool FTermXTerminal::canSetXTermBackground()
|
||||||
|
{
|
||||||
|
if ( xterm_default_colors
|
||||||
|
&& ! (term_detection->isMinttyTerm()
|
||||||
|
|| term_detection->isMltermTerminal()
|
||||||
|
|| term_detection->isRxvtTerminal()
|
||||||
|
|| term_detection->isScreenTerm()) )
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FTermXTerminal::resetXTermColorMap()
|
void FTermXTerminal::resetXTermColorMap()
|
||||||
{
|
{
|
||||||
|
|
|
@ -400,6 +400,9 @@ bool FToggleButton::isCheckboxButton() const
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FToggleButton::draw()
|
void FToggleButton::draw()
|
||||||
{
|
{
|
||||||
|
if ( ! isVisible() )
|
||||||
|
return;
|
||||||
|
|
||||||
if ( flags.focus && getStatusBar() )
|
if ( flags.focus && getStatusBar() )
|
||||||
{
|
{
|
||||||
const auto& msg = getStatusbarMessage();
|
const auto& msg = getStatusbarMessage();
|
||||||
|
@ -422,9 +425,6 @@ void FToggleButton::drawLabel()
|
||||||
{
|
{
|
||||||
wchar_t* LabelText;
|
wchar_t* LabelText;
|
||||||
|
|
||||||
if ( ! isVisible() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
if ( text.isNull() || text.isEmpty() )
|
if ( text.isNull() || text.isEmpty() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ void FToggleButton::drawLabel()
|
||||||
FString txt = text;
|
FString txt = text;
|
||||||
wchar_t* src = const_cast<wchar_t*>(txt.wc_str());
|
wchar_t* src = const_cast<wchar_t*>(txt.wc_str());
|
||||||
wchar_t* dest = const_cast<wchar_t*>(LabelText);
|
wchar_t* dest = const_cast<wchar_t*>(LabelText);
|
||||||
auto hotkeypos = getHotkeyPos(src, dest, length);
|
auto hotkeypos = finalcut::getHotkeyPos(src, dest, length);
|
||||||
|
|
||||||
if ( hotkeypos != NOT_SET )
|
if ( hotkeypos != NOT_SET )
|
||||||
length--;
|
length--;
|
||||||
|
@ -553,31 +553,6 @@ void FToggleButton::init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
std::size_t FToggleButton::getHotkeyPos ( wchar_t src[]
|
|
||||||
, wchar_t dest[]
|
|
||||||
, std::size_t length )
|
|
||||||
{
|
|
||||||
// find hotkey position in string
|
|
||||||
// + generate a new string without the '&'-sign
|
|
||||||
std::size_t pos = NOT_SET;
|
|
||||||
wchar_t* txt = src;
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
if ( i < length && txt[i] == L'&' && pos == NOT_SET )
|
|
||||||
{
|
|
||||||
pos = i;
|
|
||||||
i++;
|
|
||||||
src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dest++ = *src++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FToggleButton::drawText ( wchar_t LabelText[]
|
void FToggleButton::drawText ( wchar_t LabelText[]
|
||||||
, std::size_t hotkeypos
|
, std::size_t hotkeypos
|
||||||
|
|
|
@ -2340,6 +2340,30 @@ FKey getHotkey (const FString& text)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
std::size_t getHotkeyPos (wchar_t src[], wchar_t dest[], std::size_t length)
|
||||||
|
{
|
||||||
|
// Find hotkey position in string
|
||||||
|
// + generate a new string without the '&'-sign
|
||||||
|
wchar_t* txt = src;
|
||||||
|
constexpr std::size_t NOT_SET = static_cast<std::size_t>(-1);
|
||||||
|
std::size_t hotkeypos = NOT_SET;
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i < length; i++)
|
||||||
|
{
|
||||||
|
if ( i < length && txt[i] == L'&' && hotkeypos == NOT_SET )
|
||||||
|
{
|
||||||
|
hotkeypos = i;
|
||||||
|
i++;
|
||||||
|
src++;
|
||||||
|
}
|
||||||
|
|
||||||
|
*dest++ = *src++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return hotkeypos;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline void drawBox (FWidget* w, const FRect& r)
|
inline void drawBox (FWidget* w, const FRect& r)
|
||||||
{
|
{
|
||||||
|
|
|
@ -147,7 +147,6 @@ class FButton : public FWidget
|
||||||
void init();
|
void init();
|
||||||
void setHotkeyAccelerator();
|
void setHotkeyAccelerator();
|
||||||
void detectHotkey();
|
void detectHotkey();
|
||||||
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
|
||||||
std::size_t clickAnimationIndent (FWidget*);
|
std::size_t clickAnimationIndent (FWidget*);
|
||||||
void clearRightMargin (FWidget*);
|
void clearRightMargin (FWidget*);
|
||||||
void drawMarginLeft();
|
void drawMarginLeft();
|
||||||
|
|
|
@ -134,7 +134,6 @@ class FButtonGroup : public FScrollView
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
void init();
|
void init();
|
||||||
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
|
||||||
void drawText (wchar_t[], std::size_t, std::size_t);
|
void drawText (wchar_t[], std::size_t, std::size_t);
|
||||||
void directFocus();
|
void directFocus();
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,8 @@ class FCheckBox : public FToggleButton
|
||||||
void init();
|
void init();
|
||||||
void draw() override;
|
void draw() override;
|
||||||
void drawCheckButton();
|
void drawCheckButton();
|
||||||
|
void drawChecked();
|
||||||
|
void drawUnchecked();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
|
@ -174,9 +174,6 @@ class FDialog : public FWindow
|
||||||
static constexpr std::size_t MENU_BTN = 3;
|
static constexpr std::size_t MENU_BTN = 3;
|
||||||
static constexpr bool PRINT_WIN_NUMBER = false; // Only for debug
|
static constexpr bool PRINT_WIN_NUMBER = false; // Only for debug
|
||||||
|
|
||||||
// Using-declaration
|
|
||||||
using FWidget::drawBorder;
|
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
void init();
|
void init();
|
||||||
void initDialogMenu();
|
void initDialogMenu();
|
||||||
|
|
|
@ -144,7 +144,6 @@ class FLabel : public FWidget
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
void init();
|
void init();
|
||||||
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
|
||||||
void setHotkeyAccelerator();
|
void setHotkeyAccelerator();
|
||||||
std::size_t getAlignOffset (std::size_t);
|
std::size_t getAlignOffset (std::size_t);
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
|
|
@ -268,6 +268,7 @@ class FListBox : public FWidget
|
||||||
, fc::orientation
|
, fc::orientation
|
||||||
, FListBoxCallback );
|
, FListBoxCallback );
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
void drawBorder() override;
|
||||||
void drawScrollbars();
|
void drawScrollbars();
|
||||||
void drawHeadline();
|
void drawHeadline();
|
||||||
void drawList();
|
void drawList();
|
||||||
|
|
|
@ -394,6 +394,7 @@ class FListView : public FWidget
|
||||||
, std::size_t
|
, std::size_t
|
||||||
, std::size_t );
|
, std::size_t );
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
void drawBorder() override;
|
||||||
void drawScrollbars();
|
void drawScrollbars();
|
||||||
void drawHeadlines();
|
void drawHeadlines();
|
||||||
void drawList();
|
void drawList();
|
||||||
|
|
|
@ -202,7 +202,6 @@ class FMenu : public FWindow, public FMenuList
|
||||||
bool selectPrevItem();
|
bool selectPrevItem();
|
||||||
void keypressMenuBar (FKeyEvent*);
|
void keypressMenuBar (FKeyEvent*);
|
||||||
bool hotkeyMenu (FKeyEvent*);
|
bool hotkeyMenu (FKeyEvent*);
|
||||||
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
|
||||||
void draw() override;
|
void draw() override;
|
||||||
void drawItems();
|
void drawItems();
|
||||||
void drawSeparator (int);
|
void drawSeparator (int);
|
||||||
|
|
|
@ -131,7 +131,6 @@ class FMenuBar : public FWindow, public FMenuList
|
||||||
bool selectNextItem();
|
bool selectNextItem();
|
||||||
bool selectPrevItem();
|
bool selectPrevItem();
|
||||||
bool hotkeyMenu (FKeyEvent*&);
|
bool hotkeyMenu (FKeyEvent*&);
|
||||||
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
|
||||||
void draw() override;
|
void draw() override;
|
||||||
void drawItems();
|
void drawItems();
|
||||||
void drawItem (FMenuItem*, std::size_t&);
|
void drawItem (FMenuItem*, std::size_t&);
|
||||||
|
|
|
@ -93,6 +93,8 @@ class FRadioButton : public FToggleButton
|
||||||
void init();
|
void init();
|
||||||
void draw() override;
|
void draw() override;
|
||||||
void drawRadioButton();
|
void drawRadioButton();
|
||||||
|
void drawChecked();
|
||||||
|
void drawUnchecked();
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
|
@ -116,8 +116,6 @@ class FScrollbar : public FWidget
|
||||||
void resize() override;
|
void resize() override;
|
||||||
void redraw() override;
|
void redraw() override;
|
||||||
void calculateSliderValues();
|
void calculateSliderValues();
|
||||||
void drawVerticalBar();
|
|
||||||
void drawHorizontalBar();
|
|
||||||
void drawBar();
|
void drawBar();
|
||||||
|
|
||||||
// Event handlers
|
// Event handlers
|
||||||
|
@ -131,6 +129,10 @@ class FScrollbar : public FWidget
|
||||||
// Methods
|
// Methods
|
||||||
void init();
|
void init();
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
void drawVerticalBar();
|
||||||
|
void drawVerticalBackgroundLine();
|
||||||
|
void drawHorizontalBar();
|
||||||
|
void drawHorizontalBackgroundColumn();
|
||||||
void drawButtons();
|
void drawButtons();
|
||||||
sType getClickedScrollType (int, int);
|
sType getClickedScrollType (int, int);
|
||||||
sType getVerticalClickedScrollType (int);
|
sType getVerticalClickedScrollType (int);
|
||||||
|
|
|
@ -133,6 +133,7 @@ class FScrollView : public FWidget
|
||||||
void scrollTo (int, int);
|
void scrollTo (int, int);
|
||||||
void scrollBy (int, int);
|
void scrollBy (int, int);
|
||||||
void draw() override;
|
void draw() override;
|
||||||
|
void drawBorder() override;
|
||||||
|
|
||||||
// Event handlers
|
// Event handlers
|
||||||
void onKeyPress (FKeyEvent*) override;
|
void onKeyPress (FKeyEvent*) override;
|
||||||
|
|
|
@ -119,6 +119,8 @@ class FTermXTerminal final
|
||||||
static void setXTermHighlightBackground();
|
static void setXTermHighlightBackground();
|
||||||
static void setXTerm8ColorDefaults();
|
static void setXTerm8ColorDefaults();
|
||||||
static void setXTerm16ColorDefaults();
|
static void setXTerm16ColorDefaults();
|
||||||
|
static void setXTermDefaultsMouseCursor();
|
||||||
|
static bool canSetXTermBackground();
|
||||||
static void resetXTermColorMap();
|
static void resetXTermColorMap();
|
||||||
static void resetXTermForeground();
|
static void resetXTermForeground();
|
||||||
static void resetXTermBackground();
|
static void resetXTermBackground();
|
||||||
|
|
|
@ -157,7 +157,6 @@ class FToggleButton : public FWidget
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
void init();
|
void init();
|
||||||
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
|
||||||
void drawText (wchar_t[], std::size_t , std::size_t);
|
void drawText (wchar_t[], std::size_t , std::size_t);
|
||||||
|
|
||||||
// Friend classes
|
// Friend classes
|
||||||
|
|
|
@ -525,6 +525,7 @@ class FWidget : public FVTerm, public FObject
|
||||||
char* createBlankArray (std::size_t);
|
char* createBlankArray (std::size_t);
|
||||||
void destroyBlankArray (char[]);
|
void destroyBlankArray (char[]);
|
||||||
FKey getHotkey (const FString&);
|
FKey getHotkey (const FString&);
|
||||||
|
std::size_t getHotkeyPos (wchar_t[], wchar_t[], std::size_t);
|
||||||
void drawBorder (FWidget*, FRect);
|
void drawBorder (FWidget*, FRect);
|
||||||
|
|
||||||
// FWidget inline functions
|
// FWidget inline functions
|
||||||
|
|
|
@ -76,7 +76,6 @@ class FWindow : public FWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Using-declaration
|
// Using-declaration
|
||||||
using FWidget::drawBorder;
|
|
||||||
using FWidget::setGeometry;
|
using FWidget::setGeometry;
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|
Loading…
Reference in New Issue