diff options
author | Mark Tiefenbruck <mark@fluxbox.org> | 2008-10-04 21:01:31 (GMT) |
---|---|---|
committer | Mark Tiefenbruck <mark@fluxbox.org> | 2008-10-04 21:01:31 (GMT) |
commit | e6570b61f34e9d7822f500706a5a2cd6bc436234 (patch) | |
tree | 3f186315662e41fc8908d07a1720de0282113981 /util/fbrun | |
parent | 4b5c00b764417b91388d6e88b10f3cbd2764ff02 (diff) | |
download | fluxbox-e6570b61f34e9d7822f500706a5a2cd6bc436234.zip fluxbox-e6570b61f34e9d7822f500706a5a2cd6bc436234.tar.bz2 |
add -print option to fbrun to return result to stdout instead of executing it
Diffstat (limited to 'util/fbrun')
-rw-r--r-- | util/fbrun/FbRun.cc | 7 | ||||
-rw-r--r-- | util/fbrun/FbRun.hh | 2 | ||||
-rw-r--r-- | util/fbrun/main.cc | 6 |
3 files changed, 14 insertions, 1 deletions
diff --git a/util/fbrun/FbRun.cc b/util/fbrun/FbRun.cc index c304413..f98a02e 100644 --- a/util/fbrun/FbRun.cc +++ b/util/fbrun/FbRun.cc | |||
@@ -58,6 +58,7 @@ using std::ios; | |||
58 | FbRun::FbRun(int x, int y, size_t width): | 58 | FbRun::FbRun(int x, int y, size_t width): |
59 | FbTk::TextBox(DefaultScreen(FbTk::App::instance()->display()), | 59 | FbTk::TextBox(DefaultScreen(FbTk::App::instance()->display()), |
60 | m_font, ""), | 60 | m_font, ""), |
61 | m_print(false), | ||
61 | m_font("fixed"), | 62 | m_font("fixed"), |
62 | m_display(FbTk::App::instance()->display()), | 63 | m_display(FbTk::App::instance()->display()), |
63 | m_bevel(4), | 64 | m_bevel(4), |
@@ -115,6 +116,12 @@ void FbRun::run(const std::string &command) { | |||
115 | FbTk::App::instance()->end(); // end application | 116 | FbTk::App::instance()->end(); // end application |
116 | m_end = true; // mark end of processing | 117 | m_end = true; // mark end of processing |
117 | 118 | ||
119 | if (m_print) { | ||
120 | std::cout << command; | ||
121 | hide(); | ||
122 | return; | ||
123 | } | ||
124 | |||
118 | // fork and execute program | 125 | // fork and execute program |
119 | if (!fork()) { | 126 | if (!fork()) { |
120 | 127 | ||
diff --git a/util/fbrun/FbRun.hh b/util/fbrun/FbRun.hh index 405ae3f..6ddbad0 100644 --- a/util/fbrun/FbRun.hh +++ b/util/fbrun/FbRun.hh | |||
@@ -42,6 +42,7 @@ public: | |||
42 | void handleEvent(XEvent * const ev); | 42 | void handleEvent(XEvent * const ev); |
43 | void setTitle(const std::string &title); | 43 | void setTitle(const std::string &title); |
44 | void resize(unsigned int width, unsigned int height); | 44 | void resize(unsigned int width, unsigned int height); |
45 | void setPrint(bool print) { m_print = print; } | ||
45 | 46 | ||
46 | /// load and reconfigure for new font | 47 | /// load and reconfigure for new font |
47 | bool loadFont(const std::string &fontname); | 48 | bool loadFont(const std::string &fontname); |
@@ -83,6 +84,7 @@ private: | |||
83 | void tabCompleteHistory(); | 84 | void tabCompleteHistory(); |
84 | void tabCompleteApps(); | 85 | void tabCompleteApps(); |
85 | 86 | ||
87 | bool m_print; ///< the input should be printed to stdout rather than run | ||
86 | FbTk::Font m_font; ///< font used to draw command text | 88 | FbTk::Font m_font; ///< font used to draw command text |
87 | Display *m_display; ///< display connection | 89 | Display *m_display; ///< display connection |
88 | int m_bevel; | 90 | int m_bevel; |
diff --git a/util/fbrun/main.cc b/util/fbrun/main.cc index 6adfbe7..f9875d3 100644 --- a/util/fbrun/main.cc +++ b/util/fbrun/main.cc | |||
@@ -55,6 +55,7 @@ void showUsage(const char *progname) { | |||
55 | " -font [font name] Text font"<<endl<< | 55 | " -font [font name] Text font"<<endl<< |
56 | " -title [title name] Set title"<<endl<< | 56 | " -title [title name] Set title"<<endl<< |
57 | " -text [text] Text input"<<endl<< | 57 | " -text [text] Text input"<<endl<< |
58 | " -print Print result to stdout"<<endl<< | ||
58 | " -w [width] Window width in pixels"<<endl<< | 59 | " -w [width] Window width in pixels"<<endl<< |
59 | " -h [height] Window height in pixels"<<endl<< | 60 | " -h [height] Window height in pixels"<<endl<< |
60 | " -display [display string] Display name"<<endl<< | 61 | " -display [display string] Display name"<<endl<< |
@@ -75,6 +76,7 @@ int main(int argc, char **argv) { | |||
75 | bool set_pos = false; // set position | 76 | bool set_pos = false; // set position |
76 | bool near_mouse = false; // popup near mouse | 77 | bool near_mouse = false; // popup near mouse |
77 | bool antialias = true; // antialias text | 78 | bool antialias = true; // antialias text |
79 | bool print = false; | ||
78 | string fontname; // font name | 80 | string fontname; // font name |
79 | string title("Run program"); // default title | 81 | string title("Run program"); // default title |
80 | string text; // default input text | 82 | string text; // default input text |
@@ -86,6 +88,8 @@ int main(int argc, char **argv) { | |||
86 | for (int i=1; i<argc; i++) { | 88 | for (int i=1; i<argc; i++) { |
87 | if (strcmp(argv[i], "-font") == 0 && i+1 < argc) { | 89 | if (strcmp(argv[i], "-font") == 0 && i+1 < argc) { |
88 | fontname = argv[++i]; | 90 | fontname = argv[++i]; |
91 | } else if (strcmp(argv[i], "-print") == 0) { | ||
92 | print = true; | ||
89 | } else if (strcmp(argv[i], "-title") == 0 && i+1 < argc) { | 93 | } else if (strcmp(argv[i], "-title") == 0 && i+1 < argc) { |
90 | title = argv[++i]; | 94 | title = argv[++i]; |
91 | } else if (strcmp(argv[i], "-text") == 0 && i+1 < argc) { | 95 | } else if (strcmp(argv[i], "-text") == 0 && i+1 < argc) { |
@@ -129,7 +133,7 @@ int main(int argc, char **argv) { | |||
129 | FbTk::App application(display_name.c_str()); | 133 | FbTk::App application(display_name.c_str()); |
130 | FbRun fbrun; | 134 | FbRun fbrun; |
131 | 135 | ||
132 | //fbrun.setAntialias(antialias); | 136 | fbrun.setPrint(print); |
133 | 137 | ||
134 | if (fontname.size() != 0) { | 138 | if (fontname.size() != 0) { |
135 | if (!fbrun.loadFont(fontname.c_str())) { | 139 | if (!fbrun.loadFont(fontname.c_str())) { |