[BACK]Return to cmd-select-layout.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/cmd-select-layout.c between version 1.10 and 1.11

version 1.10, 2010/06/29 03:30:13 version 1.11, 2011/01/04 00:42:47
Line 24 
Line 24 
  * Switch window to selected layout.   * Switch window to selected layout.
  */   */
   
 void    cmd_select_layout_init(struct cmd *, int);  void    cmd_select_layout_key_binding(struct cmd *, int);
 int     cmd_select_layout_exec(struct cmd *, struct cmd_ctx *);  int     cmd_select_layout_exec(struct cmd *, struct cmd_ctx *);
   
 const struct cmd_entry cmd_select_layout_entry = {  const struct cmd_entry cmd_select_layout_entry = {
         "select-layout", "selectl",          "select-layout", "selectl",
           "t:", 0, 1,
         CMD_TARGET_WINDOW_USAGE " [layout-name]",          CMD_TARGET_WINDOW_USAGE " [layout-name]",
         CMD_ARG01, "",          0,
         cmd_select_layout_init,          cmd_select_layout_key_binding,
         cmd_target_parse,          NULL,
         cmd_select_layout_exec,          cmd_select_layout_exec
         cmd_target_free,  
         cmd_target_print  
 };  };
   
 void  void
 cmd_select_layout_init(struct cmd *self, int key)  cmd_select_layout_key_binding(struct cmd *self, int key)
 {  {
         struct cmd_target_data  *data;  
   
         cmd_target_init(self, key);  
         data = self->data;  
   
         switch (key) {          switch (key) {
         case ('1' | KEYC_ESCAPE):          case '1' | KEYC_ESCAPE:
                 data->arg = xstrdup("even-horizontal");                  self->args = args_create(1, "even-horizontal");
                 break;                  break;
         case ('2' | KEYC_ESCAPE):          case '2' | KEYC_ESCAPE:
                 data->arg = xstrdup("even-vertical");                  self->args = args_create(1, "even-vertical");
                 break;                  break;
         case ('3' | KEYC_ESCAPE):          case '3' | KEYC_ESCAPE:
                 data->arg = xstrdup("main-horizontal");                  self->args = args_create(1, "main-horizontal");
                 break;                  break;
         case ('4' | KEYC_ESCAPE):          case '4' | KEYC_ESCAPE:
                 data->arg = xstrdup("main-vertical");                  self->args = args_create(1, "main-vertical");
                 break;                  break;
         case ('5' | KEYC_ESCAPE):          case '5' | KEYC_ESCAPE:
                 data->arg = xstrdup("tiled");                  self->args = args_create(1, "tiled");
                 break;                  break;
           default:
                   self->args = args_create(0);
                   break;
         }          }
 }  }
   
 int  int
 cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)  cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx)
 {  {
         struct cmd_target_data  *data = self->data;          struct args     *args = self->args;
         struct winlink          *wl;          struct winlink  *wl;
         int                      layout;          const char      *layoutname;
           int              layout;
   
         if ((wl = cmd_find_window(ctx, data->target, NULL)) == NULL)          if ((wl = cmd_find_window(ctx, args_get(args, 't'), NULL)) == NULL)
                 return (-1);                  return (-1);
   
         if (data->arg == NULL) {          if (args->argc == 0)
                 layout = wl->window->lastlayout;                  layout = wl->window->lastlayout;
                 if (layout == -1)          else
                         return (0);                  layout = layout_set_lookup(args->argv[0]);
         } else if ((layout = layout_set_lookup(data->arg)) != -1) {          if (layout != -1) {
                 layout = layout_set_select(wl->window, layout);                  layout = layout_set_select(wl->window, layout);
                 ctx->info(ctx, "arranging in: %s", layout_set_name(layout));                  ctx->info(ctx, "arranging in: %s", layout_set_name(layout));
         } else {                  return (0);
                 if (layout_parse(wl->window, data->arg) == -1) {          }
                         ctx->error(ctx, "can't set layout: %s", data->arg);  
           if (args->argc != 0) {
                   layoutname = args->argv[0];
                   if (layout_parse(wl->window, layoutname) == -1) {
                           ctx->error(ctx, "can't set layout: %s", layoutname);
                         return (-1);                          return (-1);
                 }                  }
                 ctx->info(ctx, "arranging in: %s", data->arg);                  ctx->info(ctx, "arranging in: %s", layoutname);
                   return (0);
         }          }
   
         return (0);          return (0);

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11