Changes in uspace/app/vlaunch/vlaunch.c [bdfdc51c:9e7898e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/vlaunch/vlaunch.c
rbdfdc51c r9e7898e 37 37 #include <stdio.h> 38 38 #include <malloc.h> 39 #include <io/pixel.h> 39 40 #include <task.h> 41 #include <str.h> 40 42 #include <str_error.h> 41 43 … … 62 64 static int app_launch(const char *app) 63 65 { 66 int rc; 64 67 printf("%s: Spawning %s %s \n", NAME, app, winreg); 65 68 66 69 task_id_t id; 67 task_wait_t wait; 68 int rc = task_spawnl(&id, &wait, app, app, winreg, NULL); 70 task_exit_t texit; 71 int retval; 72 rc = task_spawnl(&id, app, app, winreg, NULL); 69 73 if (rc != EOK) { 70 74 printf("%s: Error spawning %s %s (%s)\n", NAME, app, … … 72 76 return -1; 73 77 } 74 75 task_exit_t texit; 76 int retval; 77 rc = task_wait(&wait, &texit, &retval); 78 if ((rc != EOK) || (texit != TASK_EXIT_NORMAL)) { 78 rc = task_wait(id, &texit, &retval); 79 if (rc != EOK || texit != TASK_EXIT_NORMAL) { 79 80 printf("%s: Error retrieving retval from %s (%s)\n", NAME, 80 81 app, str_error(rc)); 81 82 return -1; 82 83 } 83 84 84 85 return retval; 85 86 } 86 87 87 static void on_ btn_click(widget_t *widget, void *data)88 static void on_vterm(widget_t *widget, void *data) 88 89 { 89 const char *app = (const char *) widget_get_data(widget); 90 app_launch(app); 90 app_launch("/app/vterm"); 91 } 92 93 static void on_vdemo(widget_t *widget, void *data) 94 { 95 app_launch("/app/vdemo"); 96 } 97 98 static void on_vlaunch(widget_t *widget, void *data) 99 { 100 app_launch("/app/vlaunch"); 91 101 } 92 102 … … 105 115 106 116 winreg = argv[1]; 107 window_t *main_window = window_open(argv[1], NULL, 108 WINDOW_MAIN | WINDOW_DECORATED | WINDOW_RESIZEABLE, "vlaunch"); 117 window_t *main_window = window_open(argv[1], true, true, "vlaunch", 0, 0); 109 118 if (!main_window) { 110 119 printf("Cannot open main window.\n"); … … 113 122 114 123 pixel_t grd_bg = PIXEL(255, 255, 255, 255); 124 pixel_t btn_bg = PIXEL(255, 0, 0, 0); 125 pixel_t btn_fg = PIXEL(255, 240, 240, 240); 126 pixel_t lbl_bg = PIXEL(255, 255, 255, 255); 127 pixel_t lbl_fg = PIXEL(255, 0, 0, 0); 115 128 116 pixel_t btn_bg = PIXEL(255, 255, 255, 255); 117 pixel_t btn_fg = PIXEL(255, 186, 186, 186); 118 pixel_t btn_text = PIXEL(255, 0, 0, 0); 119 120 pixel_t lbl_bg = PIXEL(255, 255, 255, 255); 121 pixel_t lbl_text = PIXEL(255, 0, 0, 0); 122 123 canvas_t *logo_canvas = create_canvas(NULL, NULL, LOGO_WIDTH, LOGO_HEIGHT, 129 canvas_t *logo_canvas = create_canvas(NULL, LOGO_WIDTH, LOGO_HEIGHT, 124 130 logo); 125 label_t *lbl_caption = create_label(NULL, NULL, "Launch application:", 126 16, lbl_bg, lbl_text); 127 button_t *btn_vterm = create_button(NULL, "/app/vterm", "vterm", 128 16, btn_bg, btn_fg, btn_text); 129 button_t *btn_vcalc = create_button(NULL, "/app/vcalc", "vcalc", 130 16, btn_bg, btn_fg, btn_text); 131 button_t *btn_vdemo = create_button(NULL, "/app/vdemo", "vdemo", 132 16, btn_bg, btn_fg, btn_text); 133 button_t *btn_vlaunch = create_button(NULL, "/app/vlaunch", "vlaunch", 134 16, btn_bg, btn_fg, btn_text); 135 grid_t *grid = create_grid(window_root(main_window), NULL, 1, 6, grd_bg); 131 label_t *lbl_caption = create_label(NULL, "Launch application:", 16, 132 lbl_bg, lbl_fg); 133 button_t *btn_vterm = create_button(NULL, "vterm", 16, btn_bg, 134 btn_fg); 135 button_t *btn_vdemo = create_button(NULL, "vdemo", 16, btn_bg, 136 btn_fg); 137 button_t *btn_vlaunch = create_button(NULL, "vlaunch", 16, btn_bg, 138 btn_fg); 139 grid_t *grid = create_grid(window_root(main_window), 1, 5, grd_bg); 136 140 137 141 if ((!logo_canvas) || (!lbl_caption) || (!btn_vterm) || 138 (!btn_v calc) || (!btn_vdemo) || (!btn_vlaunch) || (!grid)) {142 (!btn_vdemo) || (!btn_vlaunch) || (!grid)) { 139 143 window_close(main_window); 140 144 printf("Cannot create widgets.\n"); … … 142 146 } 143 147 144 sig_connect(&btn_vterm->clicked, &btn_vterm->widget, on_btn_click); 145 sig_connect(&btn_vcalc->clicked, &btn_vcalc->widget, on_btn_click); 146 sig_connect(&btn_vdemo->clicked, &btn_vdemo->widget, on_btn_click); 147 sig_connect(&btn_vlaunch->clicked, &btn_vlaunch->widget, on_btn_click); 148 sig_connect(&btn_vterm->clicked, NULL, on_vterm); 149 sig_connect(&btn_vdemo->clicked, NULL, on_vdemo); 150 sig_connect(&btn_vlaunch->clicked, NULL, on_vlaunch); 148 151 149 152 grid->add(grid, &logo_canvas->widget, 0, 0, 1, 1); 150 153 grid->add(grid, &lbl_caption->widget, 0, 1, 1, 1); 151 154 grid->add(grid, &btn_vterm->widget, 0, 2, 1, 1); 152 grid->add(grid, &btn_vcalc->widget, 0, 3, 1, 1); 153 grid->add(grid, &btn_vdemo->widget, 0, 4, 1, 1); 154 grid->add(grid, &btn_vlaunch->widget, 0, 5, 1, 1); 155 grid->add(grid, &btn_vdemo->widget, 0, 3, 1, 1); 156 grid->add(grid, &btn_vlaunch->widget, 0, 4, 1, 1); 155 157 156 window_resize(main_window, 0, 0, 210, 164 + LOGO_HEIGHT, 157 WINDOW_PLACEMENT_RIGHT | WINDOW_PLACEMENT_TOP); 158 window_resize(main_window, 210, 130 + LOGO_HEIGHT); 158 159 window_exec(main_window); 159 160
Note:
See TracChangeset
for help on using the changeset viewer.