~ubuntu-branches/ubuntu/maverick/apvlv/maverick

« back to all changes in this revision

Viewing changes to src/ApvlvView.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Stefan Ritter
  • Date: 2010-02-04 15:11:57 UTC
  • mfrom: (1.3.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20100204151157-nae2guz0p05ir7bc
Tags: 0.0.9.3-1
* New upstream release
* Bumped Standards-Version to 3.8.4, no changes needed

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
{
50
50
  ApvlvView *gView = NULL;
51
51
 
 
52
  const int ApvlvView::APVLV_MENU_HEIGHT = 20;
52
53
  const int ApvlvView::APVLV_CMD_BAR_HEIGHT = 20;
53
54
  const int ApvlvView::APVLV_TABS_HEIGHT = 30;
54
55
 
83
84
    mViewBox = gtk_vbox_new (FALSE, 0);
84
85
    gtk_container_add (GTK_CONTAINER (mMainWindow), mViewBox);
85
86
 
 
87
    mMenu = new ApvlvMenu ();
 
88
 
 
89
    if (strchr (gParams->values ("guioptions"), 'm') != NULL)
 
90
      {
 
91
        mMenu->setsize (mWidth, APVLV_MENU_HEIGHT);
 
92
        gtk_box_pack_start (GTK_BOX (mViewBox), mMenu->widget (), TRUE, TRUE,
 
93
                            0);
 
94
      }
 
95
 
86
96
    mTabContainer = gtk_notebook_new ();
87
97
    gtk_notebook_set_show_tabs (GTK_NOTEBOOK (mTabContainer), FALSE);
88
98
    gtk_notebook_set_scrollable (GTK_NOTEBOOK (mTabContainer), TRUE);
133
143
  {
134
144
    size_t i;
135
145
 
 
146
    delete mMenu;
136
147
 
137
148
    for (int i = 0; i < (int) mTabList.size (); i++)
138
149
      {
198
209
        os.close ();
199
210
      }
200
211
 
201
 
    GtkWidget *dia = gtk_file_chooser_dialog_new ("",
 
212
    GtkWidget *dia = gtk_file_chooser_dialog_new ("Open ...",
202
213
                                                  GTK_WINDOW (mMainWindow),
203
214
                                                  GTK_FILE_CHOOSER_ACTION_SAVE,
204
215
                                                  GTK_STOCK_CANCEL,
450
461
    mTabList.erase (remPos);
451
462
    if (c == (int) mTabList.size ())
452
463
      {
453
 
        warnp ("erase failed to remove context");
 
464
        gView->errormessage ("erase failed to remove context");
454
465
      }
455
466
 
456
467
    if ((int) mTabList.size () <= 1)
635
646
    char s[2] = { 0 };
636
647
    s[0] = ch;
637
648
    gtk_entry_set_text (GTK_ENTRY (mCommandBar), s);
638
 
    cmd_show ();
 
649
    cmd_show (CMD_CMD);
639
650
  }
640
651
 
641
652
  void ApvlvView::promptcommand (const char *s)
642
653
  {
643
654
    gtk_entry_set_text (GTK_ENTRY (mCommandBar), s);
644
 
    cmd_show ();
645
 
  }
646
 
 
647
 
  void ApvlvView::cmd_show ()
 
655
    cmd_show (CMD_CMD);
 
656
  }
 
657
 
 
658
  void ApvlvView::errormessage (const char *str, ...)
 
659
  {
 
660
    gchar estr[512];
 
661
    va_list vap;
 
662
    va_start (vap, str);
 
663
    vsnprintf (estr, sizeof estr, str, vap);
 
664
    va_end (vap);
 
665
    gtk_entry_set_text (GTK_ENTRY (mCommandBar), "ERROR: ");
 
666
    gtk_entry_append_text (GTK_ENTRY (mCommandBar), estr);
 
667
    cmd_show (CMD_MESSAGE);
 
668
  }
 
669
 
 
670
  void ApvlvView::infomessage (const char *str, ...)
 
671
  {
 
672
    gchar estr[512];
 
673
    va_list vap;
 
674
    va_start (vap, str);
 
675
    vsnprintf (estr, sizeof estr, str, vap);
 
676
    va_end (vap);
 
677
    gtk_entry_set_text (GTK_ENTRY (mCommandBar), "INFO: ");
 
678
    gtk_entry_append_text (GTK_ENTRY (mCommandBar), estr);
 
679
    cmd_show (CMD_MESSAGE);
 
680
  }
 
681
 
 
682
  void ApvlvView::cmd_show (int cmdtype)
648
683
  {
649
684
    if (mMainWindow == NULL)
650
685
      return;
651
686
 
652
 
    mHasCmd = TRUE;
 
687
    mCmdType = cmdtype;
653
688
 
654
689
    mRootWindow->setsize (mWidth, adjheight ());
655
690
 
662
697
  {
663
698
    if (mMainWindow == NULL)
664
699
      return;
665
 
    mHasCmd = FALSE;
 
700
    mCmdType = CMD_NONE;
666
701
 
667
702
    gtk_widget_hide (mCommandBar);
668
703
    mRootWindow->setsize (mWidth, adjheight ());
818
853
    return MATCH;
819
854
  }
820
855
 
821
 
  void ApvlvView::run (const char *str)
 
856
  bool ApvlvView::run (const char *str)
822
857
  {
 
858
    bool ret;
 
859
 
823
860
    switch (*str)
824
861
      {
825
862
      case SEARCH:
826
863
        crtadoc ()->markposition ('\'');
827
 
        crtadoc ()->search (str + 1);
 
864
        ret = crtadoc ()->search (str + 1);
828
865
        break;
829
866
 
830
867
      case BACKSEARCH:
831
868
        crtadoc ()->markposition ('\'');
832
 
        crtadoc ()->search (str + 1, true);
 
869
        ret = crtadoc ()->search (str + 1, true);
833
870
        break;
834
871
 
835
872
      case COMMANDMODE:
836
 
        runcmd (str + 1);
 
873
        ret = runcmd (str + 1);
837
874
        break;
838
875
 
839
876
      default:
 
877
        ret = false;
840
878
        break;
841
879
      }
 
880
 
 
881
    return ret;
842
882
  }
843
883
 
844
884
  void ApvlvView::settitle (const char *title)
846
886
    gtk_window_set_title (GTK_WINDOW (mMainWindow), title);
847
887
  }
848
888
 
849
 
  void ApvlvView::runcmd (const char *str)
 
889
  bool ApvlvView::runcmd (const char *str)
850
890
  {
 
891
    bool ret = true;
 
892
 
851
893
    if (*str == '!')
852
894
      {
853
895
        apvlv_system (str + 1);
882
924
        else if ((cmd == "o"
883
925
                  || cmd == "open" || cmd == "doc") && subcmd != "")
884
926
          {
885
 
            loadfile (subcmd.c_str ());
 
927
            ret = loadfile (subcmd.c_str ());
886
928
          }
887
929
        else if (cmd == "TOtext" && subcmd != "")
888
930
          {
1007
1049
              {
1008
1050
                crtadoc ()->showpage (atoi (cmd.c_str ()) - 1);
1009
1051
              }
 
1052
            else
 
1053
              {
 
1054
                errormessage ("no command: '%s'", cmd.c_str ());
 
1055
                ret = false;
 
1056
              }
1010
1057
          }
1011
1058
      }
 
1059
 
 
1060
    return ret;
1012
1061
  }
1013
1062
 
1014
1063
  void
1031
1080
    ApvlvView::apvlv_view_keypress_cb (GtkWidget * wid, GdkEvent * ev,
1032
1081
                                       ApvlvView * view)
1033
1082
  {
1034
 
    if (view->mHasCmd == FALSE)
 
1083
    if (view->mCmdType == CMD_NONE)
1035
1084
      {
1036
1085
        gCmds->append ((GdkEventKey *) ev);
1037
1086
        return TRUE;
1044
1093
    ApvlvView::apvlv_view_commandbar_cb (GtkWidget * wid, GdkEvent * ev,
1045
1094
                                         ApvlvView * view)
1046
1095
  {
1047
 
    if (view->mHasCmd == true)
 
1096
    if (view->mCmdType == CMD_CMD)
1048
1097
      {
1049
1098
        view->mInHistroy = false;
1050
1099
 
1055
1104
              (gchar *) gtk_entry_get_text (GTK_ENTRY (view->mCommandBar));
1056
1105
            if (str && strlen (str) > 0)
1057
1106
              {
1058
 
                view->run (str);
1059
 
                view->mCmdHistroy.push_back (str);
1060
 
                view->mCurrHistroy = view->mCmdHistroy.size () - 1;
1061
 
              }
1062
 
            view->cmd_hide ();
1063
 
            return TRUE;
 
1107
                if (view->run (str) == true)
 
1108
                  {
 
1109
                    view->mCmdHistroy.push_back (str);
 
1110
                    view->mCurrHistroy = view->mCmdHistroy.size () - 1;
 
1111
                    view->cmd_hide ();
 
1112
                    return TRUE;
 
1113
                  }
 
1114
                else
 
1115
                  {
 
1116
                    debug ("");
 
1117
                    return TRUE;
 
1118
                  }
 
1119
              }
 
1120
            else
 
1121
              {
 
1122
                view->cmd_hide ();
 
1123
                return TRUE;
 
1124
              }
1064
1125
          }
1065
1126
        else if (gek->keyval == GDK_Tab)
1066
1127
          {
1099
1160
            view->mInHistroy = true;
1100
1161
            gtk_entry_set_text (GTK_ENTRY (view->mCommandBar),
1101
1162
                                view->mCurrHistroy > 0 ?
1102
 
                                view->mCmdHistroy[view->
1103
 
                                                  mCurrHistroy--].c_str () :
1104
 
                                view->mCmdHistroy[0].c_str ());
 
1163
                                view->mCmdHistroy[view->mCurrHistroy--].
 
1164
                                c_str () : view->mCmdHistroy[0].c_str ());
1105
1165
            return TRUE;
1106
1166
          }
1107
1167
        else if (gek->keyval == GDK_Down)
1115
1175
            gtk_entry_set_text (GTK_ENTRY (view->mCommandBar),
1116
1176
                                (size_t) view->mCurrHistroy <
1117
1177
                                view->mCmdHistroy.size () -
1118
 
                                1 ? view->mCmdHistroy[++view->
1119
 
                                                      mCurrHistroy].c_str () :
1120
 
                                view->mCmdHistroy[view->mCmdHistroy.size () -
1121
 
                                                  1].c_str ());
 
1178
                                1 ? view->mCmdHistroy[++view->mCurrHistroy].
 
1179
                                c_str () : view->mCmdHistroy[view->
 
1180
                                                             mCmdHistroy.
 
1181
                                                             size () -
 
1182
                                                             1].c_str ());
1122
1183
            return TRUE;
1123
1184
          }
1124
1185
 
1125
1186
 
1126
1187
        return FALSE;
1127
1188
      }
 
1189
    else if (view->mCmdType == CMD_MESSAGE)
 
1190
      {
 
1191
        debug ("");
 
1192
        view->cmd_hide ();
 
1193
        return TRUE;
 
1194
      }
1128
1195
 
1129
1196
    return FALSE;
1130
1197
  }
1152
1219
    int adj = 0;
1153
1220
    if (gtk_notebook_get_show_tabs (GTK_NOTEBOOK (mTabContainer)))
1154
1221
      adj += APVLV_TABS_HEIGHT;
1155
 
    if (mHasCmd)
 
1222
    if (mCmdType != CMD_NONE)
1156
1223
      adj += APVLV_CMD_BAR_HEIGHT;
1157
1224
 
1158
 
    return mHeight - adj;
 
1225
    if (strchr (gParams->values ("guioptions"), 'm') != NULL)
 
1226
      {
 
1227
        return mHeight - APVLV_MENU_HEIGHT - adj;
 
1228
      }
 
1229
    else
 
1230
      {
 
1231
        return mHeight - adj;
 
1232
      }
1159
1233
  }
1160
1234
 
1161
1235
  void ApvlvView::switchtab (int tabPos)