The command line help text is now available in all applications
This commit is contained in:
parent
82f1b7e44c
commit
fc113795b4
|
@ -1,3 +1,6 @@
|
||||||
|
2017-09-19 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* The command line help text is now available in all applications
|
||||||
|
|
||||||
2017-09-17 Markus Gans <guru.mail@muenster.de>
|
2017-09-17 Markus Gans <guru.mail@muenster.de>
|
||||||
* FObject has received the iterator child access methods
|
* FObject has received the iterator child access methods
|
||||||
begin() and end()
|
begin() and end()
|
||||||
|
|
|
@ -1014,7 +1014,10 @@ int main (int argc, char* argv[])
|
||||||
// Create a calculator object
|
// Create a calculator object
|
||||||
Calc calculator(&app);
|
Calc calculator(&app);
|
||||||
|
|
||||||
|
// Set calculator object as main widget
|
||||||
app.setMainWidget(&calculator);
|
app.setMainWidget(&calculator);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
calculator.show();
|
calculator.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ int main (int argc, char* argv[])
|
||||||
// Create the application object
|
// Create the application object
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
|
|
||||||
// Create a simple dialog box
|
// Create a simple modal dialog box
|
||||||
FDialog* dgl = new FDialog(&app);
|
FDialog* dgl = new FDialog(&app);
|
||||||
dgl->setModal();
|
dgl->setModal();
|
||||||
dgl->setText ("UNIX select");
|
dgl->setText ("UNIX select");
|
||||||
|
|
|
@ -58,7 +58,10 @@ int main (int argc, char* argv[])
|
||||||
&app
|
&app
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Set dialog object as main widget
|
||||||
app.setMainWidget(&dgl);
|
app.setMainWidget(&dgl);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
dgl.show();
|
dgl.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,5 +12,7 @@ int main (int argc, char* argv[])
|
||||||
// Create a simple dialog box
|
// Create a simple dialog box
|
||||||
FMessageBox mbox(&app);
|
FMessageBox mbox(&app);
|
||||||
mbox.setText("Hello world");
|
mbox.setText("Hello world");
|
||||||
|
|
||||||
|
// Start the application
|
||||||
mbox.exec();
|
mbox.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,10 @@ int main (int argc, char* argv[])
|
||||||
&app
|
&app
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Set dialog object as main widget
|
||||||
app.setMainWidget(&dgl);
|
app.setMainWidget(&dgl);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
dgl.show();
|
dgl.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,12 +70,19 @@ void keyboard::draw()
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
// Create the application object
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
app.setForegroundColor(fc::Default);
|
app.setForegroundColor(fc::Default);
|
||||||
app.setBackgroundColor(fc::Default);
|
app.setBackgroundColor(fc::Default);
|
||||||
|
|
||||||
|
// Create a keyboard object
|
||||||
keyboard key(&app);
|
keyboard key(&app);
|
||||||
key.addAccelerator('q');
|
key.addAccelerator('q');
|
||||||
|
|
||||||
|
// Set the keyboard object as main widget
|
||||||
app.setMainWidget(&key);
|
app.setMainWidget(&key);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
key.show();
|
key.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,24 +169,19 @@ void Listbox::cb_exitApp (FWidget*, data_ptr)
|
||||||
|
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
|
|
||||||
|
// Create main dialog object
|
||||||
Listbox d(&app);
|
Listbox d(&app);
|
||||||
d.setText (L"Listbox");
|
d.setText (L"Listbox");
|
||||||
d.setGeometry (int(1 + (app.getWidth() - 56) / 2), 5, 56, 16);
|
d.setGeometry (int(1 + (app.getWidth() - 56) / 2), 5, 56, 16);
|
||||||
d.setShadow();
|
d.setShadow();
|
||||||
|
|
||||||
|
// Set dialog d as main widget
|
||||||
app.setMainWidget(&d);
|
app.setMainWidget(&d);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
d.show();
|
d.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,24 +178,19 @@ void Listview::cb_showInMessagebox (FWidget* widget, data_ptr)
|
||||||
|
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
|
|
||||||
|
// Create main dialog object
|
||||||
Listview d(&app);
|
Listview d(&app);
|
||||||
d.setText (L"Weather data");
|
d.setText (L"Weather data");
|
||||||
d.setGeometry (int(1 + (app.getWidth() - 37) / 2), 3, 37, 20);
|
d.setGeometry (int(1 + (app.getWidth() - 37) / 2), 3, 37, 20);
|
||||||
d.setShadow();
|
d.setShadow();
|
||||||
|
|
||||||
|
// Set dialog d as main widget
|
||||||
app.setMainWidget(&d);
|
app.setMainWidget(&d);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
d.show();
|
d.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,10 @@ int main (int argc, char* argv[])
|
||||||
mb.addAccelerator('q'); // press 'q' to quit
|
mb.addAccelerator('q'); // press 'q' to quit
|
||||||
mb.setShadow();
|
mb.setShadow();
|
||||||
|
|
||||||
|
// Set the mandelbrot object as main widget
|
||||||
app.setMainWidget(&mb);
|
app.setMainWidget(&mb);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
mb.show();
|
mb.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,24 +279,19 @@ void Menu::cb_exitApp (FWidget*, data_ptr)
|
||||||
|
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app (argc, argv);
|
FApplication app (argc, argv);
|
||||||
|
|
||||||
|
// Create main dialog object
|
||||||
Menu main_dlg (&app);
|
Menu main_dlg (&app);
|
||||||
main_dlg.setText ("Menu example");
|
main_dlg.setText ("Menu example");
|
||||||
main_dlg.setGeometry (int(1 + (app.getWidth() - 40) / 2), 2, 40, 6);
|
main_dlg.setGeometry (int(1 + (app.getWidth() - 40) / 2), 2, 40, 6);
|
||||||
main_dlg.setShadow();
|
main_dlg.setShadow();
|
||||||
|
|
||||||
|
// Set dialog main_dlg as main widget
|
||||||
app.setMainWidget (&main_dlg);
|
app.setMainWidget (&main_dlg);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
main_dlg.show();
|
main_dlg.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -532,7 +532,10 @@ int main (int argc, char* argv[])
|
||||||
mouse_draw.setGeometry (12, 4, 60, 18);
|
mouse_draw.setGeometry (12, 4, 60, 18);
|
||||||
mouse_draw.addAccelerator('q'); // press 'q' to quit
|
mouse_draw.addAccelerator('q'); // press 'q' to quit
|
||||||
|
|
||||||
|
// Set dialog object mouse_draw as main widget
|
||||||
app.setMainWidget(&mouse_draw);
|
app.setMainWidget(&mouse_draw);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
mouse_draw.show();
|
mouse_draw.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,20 +132,28 @@ int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
int xmax, ymax;
|
int xmax, ymax;
|
||||||
|
|
||||||
|
// Create the application object
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
|
|
||||||
|
// Create a FVTerm object as virtual terminal
|
||||||
terminal = new FVTerm(&app);
|
terminal = new FVTerm(&app);
|
||||||
xmax = terminal->getColumnNumber() - 1;
|
xmax = terminal->getColumnNumber() - 1;
|
||||||
ymax = terminal->getLineNumber() - 1;
|
ymax = terminal->getLineNumber() - 1;
|
||||||
FString line(xmax + 1, '-');
|
FString line(xmax + 1, '-');
|
||||||
|
|
||||||
|
// Place the cursor in the upper left corner
|
||||||
terminal->setTermXY(0,0);
|
terminal->setTermXY(0,0);
|
||||||
|
// Reset all terminal attributes
|
||||||
terminal->setNormal();
|
terminal->setNormal();
|
||||||
|
// Clear the screen
|
||||||
terminal->clearArea();
|
terminal->clearArea();
|
||||||
|
|
||||||
|
// Show the determined terminal name and text resolution
|
||||||
std::cout << "Terminal: " << terminal->getTermType() << "\r\n";
|
std::cout << "Terminal: " << terminal->getTermType() << "\r\n";
|
||||||
std::cout << " Columns: 0.." << xmax << "\r\n";
|
std::cout << " Columns: 0.." << xmax << "\r\n";
|
||||||
std::cout << " Lines: 0.." << ymax << "\r\n";
|
std::cout << " Lines: 0.." << ymax << "\r\n";
|
||||||
|
|
||||||
|
// Show the escape sequences for the following cursor movements
|
||||||
std::cout << std::setw(38) << "Cursor move\r\n";
|
std::cout << std::setw(38) << "Cursor move\r\n";
|
||||||
std::cout << " (From) -> (To) ";
|
std::cout << " (From) -> (To) ";
|
||||||
std::cout << "escape sequence ";
|
std::cout << "escape sequence ";
|
||||||
|
@ -169,10 +177,13 @@ int main (int argc, char* argv[])
|
||||||
move (3, 2, xmax, 2);
|
move (3, 2, xmax, 2);
|
||||||
move (5, 5, xmax - 5, ymax - 5);
|
move (5, 5, xmax - 5, ymax - 5);
|
||||||
|
|
||||||
|
// Waiting for keypress
|
||||||
keyPressed();
|
keyPressed();
|
||||||
|
|
||||||
|
// Show terminal speed and milliseconds for all cursor movement sequence
|
||||||
std::cout << "\r" << line;
|
std::cout << "\r" << line;
|
||||||
terminal->printMoveDurations();
|
terminal->printMoveDurations();
|
||||||
|
|
||||||
|
// Waiting for keypress
|
||||||
keyPressed();
|
keyPressed();
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ scrollview::scrollview (FWidget* parent)
|
||||||
, go_west()
|
, go_west()
|
||||||
, go_north()
|
, go_north()
|
||||||
{
|
{
|
||||||
|
// Create the four navigation buttons
|
||||||
go_east = new FButton(wchar_t(fc::BlackRightPointingPointer) , this);
|
go_east = new FButton(wchar_t(fc::BlackRightPointingPointer) , this);
|
||||||
go_east->setGeometry (1, 1, 5, 1);
|
go_east->setGeometry (1, 1, 5, 1);
|
||||||
|
|
||||||
|
@ -69,6 +70,7 @@ scrollview::scrollview (FWidget* parent)
|
||||||
go_north = new FButton(wchar_t(fc::BlackUpPointingTriangle) , this);
|
go_north = new FButton(wchar_t(fc::BlackUpPointingTriangle) , this);
|
||||||
go_north->setGeometry (1, getScrollHeight() - 2, 5, 1);
|
go_north->setGeometry (1, getScrollHeight() - 2, 5, 1);
|
||||||
|
|
||||||
|
// Add scroll function callbacks to the buttons
|
||||||
go_east->addCallback
|
go_east->addCallback
|
||||||
(
|
(
|
||||||
"clicked",
|
"clicked",
|
||||||
|
@ -259,7 +261,10 @@ int main (int argc, char* argv[])
|
||||||
// Create a simple dialog box
|
// Create a simple dialog box
|
||||||
scrollviewdemo svdemo(&app);
|
scrollviewdemo svdemo(&app);
|
||||||
|
|
||||||
|
// Set dialog main_dlg as main widget
|
||||||
app.setMainWidget(&svdemo);
|
app.setMainWidget(&svdemo);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
svdemo.show();
|
svdemo.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,11 +47,11 @@ int main (int, char**)
|
||||||
std::cout << " cpp_str: \"" << cpp_str << "\"" << std::endl;
|
std::cout << " cpp_str: \"" << cpp_str << "\"" << std::endl;
|
||||||
|
|
||||||
// Test: copy a character
|
// Test: copy a character
|
||||||
const FString& ch('c');
|
const FString ch('c');
|
||||||
std::cout << " char: '" << ch << "'" << std::endl;
|
std::cout << " char: '" << ch << "'" << std::endl;
|
||||||
|
|
||||||
// Test: copy a wide character
|
// Test: copy a wide character
|
||||||
const FString& wch(L'w');
|
const FString wch(L'w');
|
||||||
std::cout << " wchar_t: '" << wch << "'" << std::endl;
|
std::cout << " wchar_t: '" << wch << "'" << std::endl;
|
||||||
|
|
||||||
// Test: utf-8 string
|
// Test: utf-8 string
|
||||||
|
|
|
@ -400,11 +400,14 @@ int main (int argc, char* argv[])
|
||||||
dialog->addAccelerator('q'); // press 'q' to quit
|
dialog->addAccelerator('q'); // press 'q' to quit
|
||||||
dialog->setShadow();
|
dialog->setShadow();
|
||||||
|
|
||||||
|
// Create the attribute demo widget as a child object from the dialog
|
||||||
AttribDemo* demo = new AttribDemo(dialog);
|
AttribDemo* demo = new AttribDemo(dialog);
|
||||||
demo->setGeometry (1, 1, 67, 19);
|
demo->setGeometry (1, 1, 67, 19);
|
||||||
|
|
||||||
|
// Set the dialog object as main widget
|
||||||
app.setMainWidget(dialog);
|
app.setMainWidget(dialog);
|
||||||
dialog->show();
|
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
|
dialog->show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,12 +78,19 @@ void timer::onAccel (FAccelEvent* ev)
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
// Create the application object
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
app.setForegroundColor(fc::Default);
|
app.setForegroundColor(fc::Default);
|
||||||
app.setBackgroundColor(fc::Default);
|
app.setBackgroundColor(fc::Default);
|
||||||
|
|
||||||
|
// Create a timer object t
|
||||||
timer t(&app);
|
timer t(&app);
|
||||||
t.addAccelerator('q');
|
t.addAccelerator('q');
|
||||||
|
|
||||||
|
// Set the timer object t as main widget
|
||||||
app.setMainWidget(&t);
|
app.setMainWidget(&t);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
t.show();
|
t.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,24 +268,18 @@ void MainWindow::onTimer (FTimerEvent*)
|
||||||
|
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app (argc, argv);
|
FApplication app (argc, argv);
|
||||||
|
|
||||||
|
// Create main dialog object
|
||||||
MainWindow main_dlg (&app);
|
MainWindow main_dlg (&app);
|
||||||
main_dlg.setText ("non-transparent");
|
main_dlg.setText ("non-transparent");
|
||||||
main_dlg.setGeometry (8, 16, 26, 7);
|
main_dlg.setGeometry (8, 16, 26, 7);
|
||||||
|
|
||||||
|
// Set dialog main_dlg as main widget
|
||||||
app.setMainWidget (&main_dlg);
|
app.setMainWidget (&main_dlg);
|
||||||
main_dlg.show();
|
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
|
main_dlg.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,7 @@ Treeview::Treeview (FWidget* parent)
|
||||||
FObjectIterator iter_egypt = item_africa->begin();
|
FObjectIterator iter_egypt = item_africa->begin();
|
||||||
FListViewItem* item_egypt = static_cast<FListViewItem*>(*iter_egypt);
|
FListViewItem* item_egypt = static_cast<FListViewItem*>(*iter_egypt);
|
||||||
item_egypt = item_egypt;
|
item_egypt = item_egypt;
|
||||||
|
item_africa->expand();
|
||||||
|
|
||||||
// Quit button
|
// Quit button
|
||||||
FButton* Quit = new FButton (this);
|
FButton* Quit = new FButton (this);
|
||||||
|
@ -135,24 +136,19 @@ void Treeview::cb_exitApp (FWidget*, data_ptr)
|
||||||
|
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
|
|
||||||
|
// Create main dialog object
|
||||||
Treeview d(&app);
|
Treeview d(&app);
|
||||||
d.setText (L"Continents");
|
d.setText (L"Continents");
|
||||||
d.setGeometry (int(1 + (app.getWidth() - 37) / 2), 3, 37, 20);
|
d.setGeometry (int(1 + (app.getWidth() - 37) / 2), 3, 37, 20);
|
||||||
d.setShadow();
|
d.setShadow();
|
||||||
|
|
||||||
|
// Set dialog d as main widget
|
||||||
app.setMainWidget(&d);
|
app.setMainWidget(&d);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
d.show();
|
d.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -911,16 +911,7 @@ int main (int argc, char* argv[])
|
||||||
FString ver = F_VERSION; // library version
|
FString ver = F_VERSION; // library version
|
||||||
FString title = "The FINAL CUT " + ver + " (C) 2017 by Markus Gans";
|
FString title = "The FINAL CUT " + ver + " (C) 2017 by Markus Gans";
|
||||||
|
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object app
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
app.setXTermDefaultColors(true);
|
app.setXTermDefaultColors(true);
|
||||||
app.setXTermTitle (title);
|
app.setXTermTitle (title);
|
||||||
|
@ -929,12 +920,20 @@ int main (int argc, char* argv[])
|
||||||
//app.setTermSize(94,30);
|
//app.setTermSize(94,30);
|
||||||
//app.setNewFont();
|
//app.setNewFont();
|
||||||
|
|
||||||
|
// Create main dialog object d
|
||||||
MyDialog d(&app);
|
MyDialog d(&app);
|
||||||
d.setText (title);
|
d.setText (title);
|
||||||
d.setGeometry (int((app.getWidth() - 56) / 2), 2, 56, app.getHeight() - 4);
|
d.setGeometry (int((app.getWidth() - 56) / 2), 2, 56, app.getHeight() - 4);
|
||||||
d.setShadow();
|
d.setShadow();
|
||||||
|
|
||||||
|
// Set the dialog object d as the main widget of the application.
|
||||||
|
// When you close the main widget, the application will be closed.
|
||||||
app.setMainWidget(&d);
|
app.setMainWidget(&d);
|
||||||
|
|
||||||
|
// Show the dialog d
|
||||||
d.show();
|
d.show();
|
||||||
|
|
||||||
|
// Start the application
|
||||||
|
// and return the result to the operating system
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -215,7 +215,10 @@ int main (int argc, char* argv[])
|
||||||
// Create a simple dialog box
|
// Create a simple dialog box
|
||||||
watch w(&app);
|
watch w(&app);
|
||||||
|
|
||||||
|
// Set dialog w as main widget
|
||||||
app.setMainWidget(&w);
|
app.setMainWidget(&w);
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
w.show();
|
w.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -567,24 +567,18 @@ void Window::cb_destroyWindow (FWidget*, data_ptr data)
|
||||||
|
|
||||||
int main (int argc, char* argv[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if ( argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
// Create the application object
|
||||||
|| std::strcmp(argv[1], "-h") == 0 ) )
|
|
||||||
{
|
|
||||||
std::cout << "Generic options:" << std::endl
|
|
||||||
<< " -h, --help "
|
|
||||||
<< "Display this help and exit" << std::endl;
|
|
||||||
FApplication::print_cmd_Options();
|
|
||||||
std::exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
FApplication app (argc, argv);
|
FApplication app (argc, argv);
|
||||||
|
|
||||||
|
// Create main dialog object
|
||||||
Window main_dlg (&app);
|
Window main_dlg (&app);
|
||||||
main_dlg.setText ("Main window");
|
main_dlg.setText ("Main window");
|
||||||
main_dlg.setGeometry (int(1 + (app.getWidth() - 40) / 2), 2, 40, 6);
|
main_dlg.setGeometry (int(1 + (app.getWidth() - 40) / 2), 2, 40, 6);
|
||||||
|
|
||||||
|
// Set dialog main_dlg as main widget
|
||||||
app.setMainWidget (&main_dlg);
|
app.setMainWidget (&main_dlg);
|
||||||
main_dlg.show();
|
|
||||||
|
|
||||||
|
// Show and start the application
|
||||||
|
main_dlg.show();
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ class FApplication : public FWidget
|
||||||
static void sendQueuedEvents ();
|
static void sendQueuedEvents ();
|
||||||
static bool eventInQueue();
|
static bool eventInQueue();
|
||||||
static bool removeQueuedEvent (const FObject*);
|
static bool removeQueuedEvent (const FObject*);
|
||||||
static void print_cmd_Options();
|
static FWidget* showParameterUsage (const int&, char*[]);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Typedefs and Enumerations
|
// Typedefs and Enumerations
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#ifndef FLISTVIEW_H
|
#ifndef FLISTVIEW_H
|
||||||
#define FLISTVIEW_H
|
#define FLISTVIEW_H
|
||||||
|
|
||||||
|
#include <stack>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "final/fscrollbar.h"
|
#include "final/fscrollbar.h"
|
||||||
|
@ -52,8 +53,6 @@ class FListViewItem : public FObject
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
FListViewItem (const FListViewItem&); // copy constructor
|
FListViewItem (const FListViewItem&); // copy constructor
|
||||||
explicit FListViewItem (FListViewItem*);
|
|
||||||
explicit FListViewItem (FListView*);
|
|
||||||
explicit FListViewItem (FObjectIterator);
|
explicit FListViewItem (FObjectIterator);
|
||||||
FListViewItem ( const std::vector<FString>&
|
FListViewItem ( const std::vector<FString>&
|
||||||
, FWidget::data_ptr
|
, FWidget::data_ptr
|
||||||
|
@ -69,6 +68,7 @@ class FListViewItem : public FObject
|
||||||
const char* getClassName() const;
|
const char* getClassName() const;
|
||||||
uInt getColumnCount() const;
|
uInt getColumnCount() const;
|
||||||
FString getText (int) const;
|
FString getText (int) const;
|
||||||
|
uInt getDepth() const;
|
||||||
|
|
||||||
// Mutator
|
// Mutator
|
||||||
void setText (int, const FString&);
|
void setText (int, const FString&);
|
||||||
|
@ -215,6 +215,7 @@ class FListView : public FWidget
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::vector<Header> headerItems;
|
typedef std::vector<Header> headerItems;
|
||||||
|
typedef std::stack<FObjectIterator> FObjectIteratorStack;
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
static const int USE_MAX_SIZE = -1;
|
static const int USE_MAX_SIZE = -1;
|
||||||
|
@ -248,6 +249,7 @@ class FListView : public FWidget
|
||||||
FObjectIterator root;
|
FObjectIterator root;
|
||||||
FObjectList selflist;
|
FObjectList selflist;
|
||||||
FObjectList itemlist;
|
FObjectList itemlist;
|
||||||
|
FObjectIteratorStack iter_path;
|
||||||
headerItems header;
|
headerItems header;
|
||||||
FTermBuffer headerline;
|
FTermBuffer headerline;
|
||||||
FScrollbar* vbar;
|
FScrollbar* vbar;
|
||||||
|
@ -345,13 +347,27 @@ inline void FListView::nextElement (FObjectIterator& iter)
|
||||||
{
|
{
|
||||||
FListViewItem* item = static_cast<FListViewItem*>(*iter);
|
FListViewItem* item = static_cast<FListViewItem*>(*iter);
|
||||||
|
|
||||||
if ( item->isExpandable() )
|
if ( item->isExpandable() && item->isExpand() )
|
||||||
{
|
{
|
||||||
//iter = item->begin();
|
iter_path.push(iter);
|
||||||
++iter;
|
iter = item->begin();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
++iter;
|
++iter;
|
||||||
|
|
||||||
|
if ( ! iter_path.empty() )
|
||||||
|
{
|
||||||
|
FObjectIterator& parent_iter = iter_path.top();
|
||||||
|
|
||||||
|
if ( iter == (*parent_iter)->end() )
|
||||||
|
{
|
||||||
|
iter = parent_iter;
|
||||||
|
iter_path.pop();
|
||||||
|
++iter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // FLISTVIEW_H
|
#endif // FLISTVIEW_H
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
if [ $# -gt 0 ]
|
if [ $# -gt 0 ]
|
||||||
then
|
then
|
||||||
eval cppcheck --enable=all "$@"
|
eval cppcheck --force --enable=all -I../include/ "$@"
|
||||||
else
|
else
|
||||||
eval cppcheck --enable=all ../include/final/ ../src/ ../examples/
|
eval cppcheck --force --enable=all -I../include/ ../src/ ../examples/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ FApplication::eventQueue* FApplication::event_queue = 0;
|
||||||
FApplication::FApplication ( const int& _argc
|
FApplication::FApplication ( const int& _argc
|
||||||
, char* _argv[]
|
, char* _argv[]
|
||||||
, bool disable_alt_screen )
|
, bool disable_alt_screen )
|
||||||
: FWidget(0, disable_alt_screen)
|
: FWidget(showParameterUsage(_argc,_argv), disable_alt_screen)
|
||||||
, app_argc(_argc)
|
, app_argc(_argc)
|
||||||
, app_argv(_argv)
|
, app_argv(_argv)
|
||||||
, key(0)
|
, key(0)
|
||||||
|
@ -290,14 +290,31 @@ bool FApplication::removeQueuedEvent (const FObject* receiver)
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FApplication::print_cmd_Options ()
|
FWidget* FApplication::showParameterUsage (const int& argc, char* argv[])
|
||||||
{
|
{
|
||||||
std::printf ( "\nFinalCut Options:\n"
|
if ( argc > 0 && argv[1] && ( std::strcmp(argv[1], "--help") == 0
|
||||||
" --encoding <name> Sets the character encoding mode\n"
|
|| std::strcmp(argv[1], "-h") == 0 ) )
|
||||||
" {UTF8, VT100, PC, ASCII}\n"
|
{
|
||||||
" --no-optimized-cursor No cursor optimisation\n"
|
std::cout \
|
||||||
" --vgafont Set the standard vga 8x16 font\n"
|
<< "Generic options:" << std::endl
|
||||||
" --newfont Enables the graphical font\n" );
|
<< " -h, --help "
|
||||||
|
<< " Display this help and exit" << std::endl
|
||||||
|
<< std::endl
|
||||||
|
<< "FinalCut Options:" << std::endl
|
||||||
|
<< " --encoding <name> "
|
||||||
|
<< " Sets the character encoding mode" << std::endl
|
||||||
|
<< " "
|
||||||
|
<< " {UTF8, VT100, PC, ASCII}" << std::endl
|
||||||
|
<< " --no-optimized-cursor"
|
||||||
|
<< " No cursor optimisation" << std::endl
|
||||||
|
<< " --vgafont "
|
||||||
|
<< " Set the standard vga 8x16 font" << std::endl
|
||||||
|
<< " --newfont "
|
||||||
|
<< " Enables the graphical font" << std::endl;
|
||||||
|
std::exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -335,6 +352,7 @@ void FApplication::init()
|
||||||
std::fill_n (urxvt_mouse, sizeof(urxvt_mouse), '\0');
|
std::fill_n (urxvt_mouse, sizeof(urxvt_mouse), '\0');
|
||||||
// init bit field with 0
|
// init bit field with 0
|
||||||
std::memset(&b_state, 0x00, sizeof(b_state));
|
std::memset(&b_state, 0x00, sizeof(b_state));
|
||||||
|
|
||||||
// interpret the command line options
|
// interpret the command line options
|
||||||
cmd_options();
|
cmd_options();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,8 +40,6 @@ void FCheckMenuItem::init (FWidget* parent)
|
||||||
if ( isMenu(parent) ) // Parent is menu
|
if ( isMenu(parent) ) // Parent is menu
|
||||||
{
|
{
|
||||||
FMenu* menu_ptr = static_cast<FMenu*>(parent);
|
FMenu* menu_ptr = static_cast<FMenu*>(parent);
|
||||||
|
|
||||||
if ( menu_ptr )
|
|
||||||
menu_ptr->has_checkable_items = true;
|
menu_ptr->has_checkable_items = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -241,7 +241,6 @@ int FFileDialog::readDir()
|
||||||
int start, dir_num;
|
int start, dir_num;
|
||||||
const char* const dir = directory.c_str();
|
const char* const dir = directory.c_str();
|
||||||
const char* const filter = filter_pattern.c_str();
|
const char* const filter = filter_pattern.c_str();
|
||||||
errno = 0;
|
|
||||||
directory_stream = opendir(dir);
|
directory_stream = opendir(dir);
|
||||||
|
|
||||||
if ( ! directory_stream )
|
if ( ! directory_stream )
|
||||||
|
@ -254,37 +253,40 @@ int FFileDialog::readDir()
|
||||||
|
|
||||||
while ( true )
|
while ( true )
|
||||||
{
|
{
|
||||||
errno = 0;
|
int retval;
|
||||||
struct dirent* next = readdir (directory_stream);
|
struct dirent next;
|
||||||
|
struct dirent* result;
|
||||||
|
|
||||||
if ( next )
|
retval = readdir_r(directory_stream, &next, &result);
|
||||||
|
|
||||||
|
if ( result && retval == 0 )
|
||||||
{
|
{
|
||||||
if ( next->d_name[0] == '.' && next->d_name[1] == '\0' )
|
if ( next.d_name[0] == '.' && next.d_name[1] == '\0' )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( ! show_hidden
|
if ( ! show_hidden
|
||||||
&& next->d_name[0] == '.'
|
&& next.d_name[0] == '.'
|
||||||
&& next->d_name[1] != '\0'
|
&& next.d_name[1] != '\0'
|
||||||
&& next->d_name[1] != '.' )
|
&& next.d_name[1] != '.' )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dir[0] == '/' && dir[1] == '\0'
|
if ( dir[0] == '/' && dir[1] == '\0'
|
||||||
&& std::strcmp(next->d_name, "..") == 0 )
|
&& std::strcmp(next.d_name, "..") == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
dir_entry entry;
|
dir_entry entry;
|
||||||
entry.name = strdup(next->d_name);
|
entry.name = strdup(next.d_name);
|
||||||
entry.type = next->d_type;
|
entry.type = next.d_type;
|
||||||
|
|
||||||
if ( next->d_type == DT_LNK ) // symbolic link
|
if ( next.d_type == DT_LNK ) // symbolic link
|
||||||
{
|
{
|
||||||
char resolved_path[MAXPATHLEN] = {};
|
char resolved_path[MAXPATHLEN] = {};
|
||||||
char symLink[MAXPATHLEN] = {};
|
char symLink[MAXPATHLEN] = {};
|
||||||
std::strncpy (symLink, dir, sizeof(symLink) - 1);
|
std::strncpy (symLink, dir, sizeof(symLink) - 1);
|
||||||
std::strncat ( symLink
|
std::strncat ( symLink
|
||||||
, next->d_name
|
, next.d_name
|
||||||
, sizeof(symLink) - std::strlen(symLink) - 1);
|
, sizeof(symLink) - std::strlen(symLink) - 1);
|
||||||
|
|
||||||
if ( realpath(symLink, resolved_path) != 0 ) // follow link
|
if ( realpath(symLink, resolved_path) != 0 ) // follow link
|
||||||
|
@ -306,11 +308,11 @@ int FFileDialog::readDir()
|
||||||
else
|
else
|
||||||
std::free(entry.name);
|
std::free(entry.name);
|
||||||
}
|
}
|
||||||
else if (errno != 0)
|
else if ( retval > 0 )
|
||||||
{
|
{
|
||||||
FMessageBox::error (this, "Reading directory\n" + directory);
|
FMessageBox::error (this, "Reading directory\n" + directory);
|
||||||
|
|
||||||
if ( errno != EOVERFLOW )
|
if ( retval == EBADF ) // Invalid directory stream descriptor
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -87,6 +87,20 @@ FString FListViewItem::getText (int column) const
|
||||||
return column_list[uInt(column)];
|
return column_list[uInt(column)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
uInt FListViewItem::getDepth() const
|
||||||
|
{
|
||||||
|
FObject* parent = getParent();
|
||||||
|
|
||||||
|
if ( parent && parent->isInstanceOf("FListViewItem") )
|
||||||
|
{
|
||||||
|
FListViewItem* parent_item = static_cast<FListViewItem*>(parent);
|
||||||
|
return parent_item->getDepth() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FListViewItem::setText (int column, const FString& text)
|
void FListViewItem::setText (int column, const FString& text)
|
||||||
{
|
{
|
||||||
|
@ -226,6 +240,7 @@ FListView::FListView (FWidget* parent)
|
||||||
, root()
|
, root()
|
||||||
, selflist()
|
, selflist()
|
||||||
, itemlist()
|
, itemlist()
|
||||||
|
, iter_path()
|
||||||
, header()
|
, header()
|
||||||
, headerline()
|
, headerline()
|
||||||
, vbar(0)
|
, vbar(0)
|
||||||
|
@ -408,6 +423,8 @@ FObject::FObjectIterator FListView::insert ( FListViewItem* item
|
||||||
item_iter = parent->appendItem (item);
|
item_iter = parent->appendItem (item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
item_iter = FObjectIterator(0);
|
||||||
|
|
||||||
int element_count = int(getCount());
|
int element_count = int(getCount());
|
||||||
recalculateVerticalBar (element_count);
|
recalculateVerticalBar (element_count);
|
||||||
|
@ -1294,6 +1311,8 @@ void FListView::drawListLine ( const FListViewItem* item
|
||||||
, bool is_focus
|
, bool is_focus
|
||||||
, bool is_current )
|
, bool is_current )
|
||||||
{
|
{
|
||||||
|
uInt indent = item->getDepth() << 1; // indent = 2 * depth
|
||||||
|
|
||||||
setColor (wc.list_fg, wc.list_bg);
|
setColor (wc.list_fg, wc.list_bg);
|
||||||
|
|
||||||
if ( is_current )
|
if ( is_current )
|
||||||
|
@ -1329,13 +1348,24 @@ void FListView::drawListLine ( const FListViewItem* item
|
||||||
|
|
||||||
if ( tree_view )
|
if ( tree_view )
|
||||||
{
|
{
|
||||||
|
if ( indent > 0 )
|
||||||
|
line = FString(indent, L' ');
|
||||||
|
|
||||||
if ( item->expandable )
|
if ( item->expandable )
|
||||||
{
|
{
|
||||||
line = wchar_t(fc::BlackRightPointingPointer);
|
if (item->is_expand )
|
||||||
|
{
|
||||||
|
line += wchar_t(fc::BlackDownPointingTriangle); // ▼
|
||||||
line += L' ';
|
line += L' ';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
line = L" ";
|
{
|
||||||
|
line += wchar_t(fc::BlackRightPointingPointer); // ►
|
||||||
|
line += L' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
line += L" ";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
line = L" ";
|
line = L" ";
|
||||||
|
@ -1359,6 +1389,7 @@ void FListView::drawListLine ( const FListViewItem* item
|
||||||
|
|
||||||
if ( tree_view && i == 1 )
|
if ( tree_view && i == 1 )
|
||||||
{
|
{
|
||||||
|
width -= indent;
|
||||||
width--;
|
width--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -797,15 +797,11 @@ void FMenu::init(FWidget* parent)
|
||||||
if ( isMenuBar(parent) )
|
if ( isMenuBar(parent) )
|
||||||
{
|
{
|
||||||
FMenuBar* mbar = static_cast<FMenuBar*>(parent);
|
FMenuBar* mbar = static_cast<FMenuBar*>(parent);
|
||||||
|
|
||||||
if ( mbar )
|
|
||||||
mbar->calculateDimensions();
|
mbar->calculateDimensions();
|
||||||
}
|
}
|
||||||
else if ( isMenu(parent) )
|
else if ( isMenu(parent) )
|
||||||
{
|
{
|
||||||
FMenu* smenu = static_cast<FMenu*>(parent);
|
FMenu* smenu = static_cast<FMenu*>(parent);
|
||||||
|
|
||||||
if ( smenu )
|
|
||||||
smenu->calculateDimensions();
|
smenu->calculateDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -299,8 +299,6 @@ void FMenuItem::onKeyPress (FKeyEvent* ev)
|
||||||
if ( isMenu(super_menu) )
|
if ( isMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
||||||
|
|
||||||
if ( smenu )
|
|
||||||
smenu->onKeyPress(ev);
|
smenu->onKeyPress(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,9 +328,6 @@ void FMenuItem::onMouseDoubleClick (FMouseEvent* ev)
|
||||||
if ( isMenu(super_menu) )
|
if ( isMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
||||||
|
|
||||||
if ( smenu )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = smenu->termToWidgetPos(t);
|
const FPoint& p2 = smenu->termToWidgetPos(t);
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -348,7 +343,6 @@ void FMenuItem::onMouseDoubleClick (FMouseEvent* ev)
|
||||||
<< ex.what() << std::endl;
|
<< ex.what() << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMenuBar(super_menu) )
|
if ( isMenuBar(super_menu) )
|
||||||
{
|
{
|
||||||
|
@ -409,9 +403,6 @@ void FMenuItem::onMouseDown (FMouseEvent* ev)
|
||||||
if ( isMenu(super_menu) )
|
if ( isMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
||||||
|
|
||||||
if ( smenu )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = smenu->termToWidgetPos(t);
|
const FPoint& p2 = smenu->termToWidgetPos(t);
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -427,7 +418,6 @@ void FMenuItem::onMouseDown (FMouseEvent* ev)
|
||||||
<< ex.what() << std::endl;
|
<< ex.what() << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMenuBar(super_menu) )
|
if ( isMenuBar(super_menu) )
|
||||||
{
|
{
|
||||||
|
@ -488,42 +478,30 @@ void FMenuItem::onMouseUp (FMouseEvent* ev)
|
||||||
if ( isMenu(super_menu) )
|
if ( isMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
||||||
|
|
||||||
if ( smenu )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = smenu->termToWidgetPos(t);
|
const FPoint& p2 = smenu->termToWidgetPos(t);
|
||||||
FMouseEvent* _ev = new FMouseEvent (fc::MouseUp_Event, p2, t, b);
|
FMouseEvent* _ev = new FMouseEvent (fc::MouseUp_Event, p2, t, b);
|
||||||
smenu->onMouseUp(_ev);
|
smenu->onMouseUp(_ev);
|
||||||
delete _ev;
|
delete _ev;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMenuBar(super_menu) )
|
if ( isMenuBar(super_menu) )
|
||||||
{
|
{
|
||||||
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
||||||
|
|
||||||
if ( mbar )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = mbar->termToWidgetPos(t);
|
const FPoint& p2 = mbar->termToWidgetPos(t);
|
||||||
FMouseEvent* _ev = new FMouseEvent (fc::MouseUp_Event, p2, t, b);
|
FMouseEvent* _ev = new FMouseEvent (fc::MouseUp_Event, p2, t, b);
|
||||||
mbar->onMouseUp(_ev);
|
mbar->onMouseUp(_ev);
|
||||||
delete _ev;
|
delete _ev;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( isWindowsMenu(super_menu) )
|
if ( isWindowsMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FDialog* dgl = static_cast<FDialog*>(super_menu);
|
FDialog* dgl = static_cast<FDialog*>(super_menu);
|
||||||
|
|
||||||
if ( dgl )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = dgl->termToWidgetPos(t);
|
const FPoint& p2 = dgl->termToWidgetPos(t);
|
||||||
FMouseEvent* _ev = new FMouseEvent (fc::MouseUp_Event, p2, t, b);
|
FMouseEvent* _ev = new FMouseEvent (fc::MouseUp_Event, p2, t, b);
|
||||||
dgl->onMouseUp(_ev);
|
dgl->onMouseUp(_ev);
|
||||||
delete _ev;
|
delete _ev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FMenuItem::onMouseMove (FMouseEvent* ev)
|
void FMenuItem::onMouseMove (FMouseEvent* ev)
|
||||||
|
@ -537,42 +515,30 @@ void FMenuItem::onMouseMove (FMouseEvent* ev)
|
||||||
if ( isMenu(super_menu) )
|
if ( isMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
FMenu* smenu = static_cast<FMenu*>(super_menu);
|
||||||
|
|
||||||
if ( smenu )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = smenu->termToWidgetPos(t);
|
const FPoint& p2 = smenu->termToWidgetPos(t);
|
||||||
FMouseEvent* _ev = new FMouseEvent (fc::MouseMove_Event, p2, t, b);
|
FMouseEvent* _ev = new FMouseEvent (fc::MouseMove_Event, p2, t, b);
|
||||||
smenu->onMouseMove(_ev);
|
smenu->onMouseMove(_ev);
|
||||||
delete _ev;
|
delete _ev;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( isMenuBar(super_menu) )
|
if ( isMenuBar(super_menu) )
|
||||||
{
|
{
|
||||||
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
||||||
|
|
||||||
if ( mbar )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = mbar->termToWidgetPos(t);
|
const FPoint& p2 = mbar->termToWidgetPos(t);
|
||||||
FMouseEvent* _ev = new FMouseEvent (fc::MouseMove_Event, p2, t, b);
|
FMouseEvent* _ev = new FMouseEvent (fc::MouseMove_Event, p2, t, b);
|
||||||
mbar->onMouseMove(_ev);
|
mbar->onMouseMove(_ev);
|
||||||
delete _ev;
|
delete _ev;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( isWindowsMenu(super_menu) )
|
if ( isWindowsMenu(super_menu) )
|
||||||
{
|
{
|
||||||
FDialog* dgl = static_cast<FDialog*>(super_menu);
|
FDialog* dgl = static_cast<FDialog*>(super_menu);
|
||||||
|
|
||||||
if ( dgl )
|
|
||||||
{
|
|
||||||
const FPoint& p2 = dgl->termToWidgetPos(t);
|
const FPoint& p2 = dgl->termToWidgetPos(t);
|
||||||
FMouseEvent* _ev = new FMouseEvent (fc::MouseMove_Event, p2, t, b);
|
FMouseEvent* _ev = new FMouseEvent (fc::MouseMove_Event, p2, t, b);
|
||||||
dgl->onMouseMove(_ev);
|
dgl->onMouseMove(_ev);
|
||||||
delete _ev;
|
delete _ev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FMenuItem::onAccel (FAccelEvent* ev)
|
void FMenuItem::onAccel (FAccelEvent* ev)
|
||||||
|
@ -588,9 +554,6 @@ void FMenuItem::onAccel (FAccelEvent* ev)
|
||||||
|
|
||||||
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
||||||
|
|
||||||
if ( ! mbar )
|
|
||||||
return;
|
|
||||||
|
|
||||||
if ( menu )
|
if ( menu )
|
||||||
{
|
{
|
||||||
FWidget* focused_widget;
|
FWidget* focused_widget;
|
||||||
|
@ -635,6 +598,7 @@ void FMenuItem::onAccel (FAccelEvent* ev)
|
||||||
processClicked();
|
processClicked();
|
||||||
mbar->drop_down = false;
|
mbar->drop_down = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ev->accept();
|
ev->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -653,8 +617,6 @@ void FMenuItem::onFocusOut (FFocusEvent*)
|
||||||
if ( super_menu && isMenuBar(super_menu) )
|
if ( super_menu && isMenuBar(super_menu) )
|
||||||
{
|
{
|
||||||
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
FMenuBar* mbar = static_cast<FMenuBar*>(super_menu);
|
||||||
|
|
||||||
if ( mbar )
|
|
||||||
mbar->redraw();
|
mbar->redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -703,8 +665,9 @@ void FMenuItem::init (FWidget* parent)
|
||||||
|
|
||||||
setGeometry (1, 1, int(text_length + 2), 1, false);
|
setGeometry (1, 1, int(text_length + 2), 1, false);
|
||||||
|
|
||||||
if ( parent )
|
if ( ! parent )
|
||||||
{
|
return;
|
||||||
|
|
||||||
FMenuList* menu_list;
|
FMenuList* menu_list;
|
||||||
setSuperMenu (parent);
|
setSuperMenu (parent);
|
||||||
|
|
||||||
|
@ -719,15 +682,11 @@ void FMenuItem::init (FWidget* parent)
|
||||||
if ( isMenuBar(parent) ) // Parent is menubar
|
if ( isMenuBar(parent) ) // Parent is menubar
|
||||||
{
|
{
|
||||||
FMenuBar* menubar_ptr = static_cast<FMenuBar*>(parent);
|
FMenuBar* menubar_ptr = static_cast<FMenuBar*>(parent);
|
||||||
|
|
||||||
if ( menubar_ptr )
|
|
||||||
{
|
|
||||||
menubar_ptr->calculateDimensions();
|
menubar_ptr->calculateDimensions();
|
||||||
|
|
||||||
if ( hotkey ) // Meta + hotkey
|
if ( hotkey ) // Meta + hotkey
|
||||||
menubar_ptr->addAccelerator ( fc::Fmkey_meta + std::tolower(hotkey)
|
menubar_ptr->addAccelerator ( fc::Fmkey_meta + std::tolower(hotkey)
|
||||||
, this );
|
, this );
|
||||||
}
|
|
||||||
|
|
||||||
addCallback // for this element
|
addCallback // for this element
|
||||||
(
|
(
|
||||||
|
@ -738,12 +697,9 @@ void FMenuItem::init (FWidget* parent)
|
||||||
else if ( isMenu(parent) ) // Parent is menu
|
else if ( isMenu(parent) ) // Parent is menu
|
||||||
{
|
{
|
||||||
FMenu* menu_ptr = static_cast<FMenu*>(parent);
|
FMenu* menu_ptr = static_cast<FMenu*>(parent);
|
||||||
|
|
||||||
if ( menu_ptr )
|
|
||||||
menu_ptr->calculateDimensions();
|
menu_ptr->calculateDimensions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
uChar FMenuItem::hotKey()
|
uChar FMenuItem::hotKey()
|
||||||
|
|
|
@ -41,8 +41,6 @@ void FRadioMenuItem::init (FWidget* parent)
|
||||||
if ( isMenu(parent) ) // Parent is menu
|
if ( isMenu(parent) ) // Parent is menu
|
||||||
{
|
{
|
||||||
FMenu* menu_ptr = static_cast<FMenu*>(parent);
|
FMenu* menu_ptr = static_cast<FMenu*>(parent);
|
||||||
|
|
||||||
if ( menu_ptr )
|
|
||||||
menu_ptr->has_checkable_items = true;
|
menu_ptr->has_checkable_items = true;
|
||||||
|
|
||||||
addCallback // for this element
|
addCallback // for this element
|
||||||
|
|
Loading…
Reference in New Issue