unsigned int height,
int posx, int posy,
bool maximize,
- unsigned int iconSizeXY)
+ unsigned int iconSizeXY,
+ const std::string & geometryArg)
{
int view_id = gui().newView();
LyXView & view = gui().view(view_id);
/*int workArea_id_ =*/ gui().newWorkArea(width, height, view_id);
view.init();
- view.setGeometry(width, height, posx, posy, maximize, iconSizeXY);
+ view.setGeometry(width, height, posx, posy, maximize, iconSizeXY, geometryArg);
setCurrentView(view);
/// Create the main window with given geometry settings.
LyXView & createView(unsigned int width, unsigned int height,
- int posx, int posy, bool maximize, unsigned int iconSizeXY);
+ int posx, int posy, bool maximize, unsigned int iconSizeXY,
+ const std::string & geometryArg);
///
LyXView const & currentView() const;
unsigned int height,
int posx, int posy,
bool maximize,
- unsigned int iconSizeXY) = 0;
+ unsigned int iconSizeXY,
+ const std::string & geometryArg) = 0;
/// save the geometry state in the session manager.
virtual void saveGeometry() = 0;
unsigned int height,
int posx, int posy,
bool maximize,
- unsigned int iconSizeXY)
+ unsigned int iconSizeXY,
+ const std::string & geometryArg)
{
// use last value (not at startup)
if (d.lastIconSize != 0)
if (maximize)
setWindowState(Qt::WindowMaximized);
}
+ else
+ {
+ // FIXME: move this code into parse_geometry() (lyx_main.C)
+#ifdef Q_WS_WIN
+ int x, y;
+ int w, h;
+ QRegExp re( "[=]*(?:([0-9]+)[xX]([0-9]+)){0,1}[ ]*(?:([+-][0-9]*)([+-][0-9]*)){0,1}" );
+ re.indexIn( toqstr(geometryArg.c_str()));
+ w = re.cap( 1 ).toInt();
+ h = re.cap( 2 ).toInt();
+ x = re.cap( 3 ).toInt();
+ y = re.cap( 4 ).toInt();
+ QWidget::setGeometry( x, y, w, h );
+#endif
+ }
show();
unsigned int height,
int posx, int posy,
bool maximize,
- unsigned int iconSizeXY);
+ unsigned int iconSizeXY,
+ const std::string & geometryArg);
virtual void saveGeometry();
virtual void busy(bool);
Toolbars::ToolbarPtr makeToolbar(ToolbarBackend::Toolbar const & tbb);
string cl_system_support;
string cl_user_support;
+std::string geometryArg;
+
LyX * singleton_ = 0;
void showFileError(string const & error)
LyX::LyX()
- : first_start(false), geometryOption_(false)
+ : first_start(false)
{
singleton_ = this;
pimpl_.reset(new Singletons);
+ geometryArg.clear();
}
posy = convert<int>(val);
}
- if (geometryOption_) {
+ if (!geometryArg.empty())
+ {
width = 0;
height = 0;
}
+
// create the main window
- LyXView * view = &pimpl_->application_->createView(width, height, posx, posy, maximize, iconSizeXY);
+ LyXView * view = &pimpl_->application_->createView(width, height, posx, posy, maximize, iconSizeXY, geometryArg);
return view;
}
return 2;
}
+int parse_geometry(string const & arg1, string const &)
+{
+ geometryArg = arg1;
+#if defined(_WIN32) || (defined(__CYGWIN__) && defined(X_DISPLAY_MISSING))
+ // remove also the arg
+ return 1;
+#else
+ // don't remove "-geometry"
+ return -1;
+#endif
+}
+
+
} // namespace anon
cmdmap["--export"] = parse_export;
cmdmap["-i"] = parse_import;
cmdmap["--import"] = parse_import;
+ cmdmap["-geometry"] = parse_geometry;
for (int i = 1; i < argc; ++i) {
std::map<string, cmd_helper>::const_iterator it
= cmdmap.find(argv[i]);
- // check for X11 -geometry option
- if (support::compare(argv[i], "-geometry") == 0)
- geometryOption_ = true;
-
// don't complain if not found - may be parsed later
if (it == cmdmap.end())
continue;
/// Use the Pimpl idiom to hide the internals.
struct Singletons;
boost::scoped_ptr<Singletons> pimpl_;
-
- ///
- bool geometryOption_;
};
} // namespace lyx