Changeset 110

Show
Ignore:
Timestamp:
09/02/06 23:17:07 (5 years ago)
Author:
ath
Message:

Add "remaining mode".

Location:
fm_gui/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • fm_gui/trunk/data/fm_cdj.glade

    r103 r110  
    33<!-- Generated with glade3 
    44        Version: 3.0.1 
    5         Date: Wed Aug 30 19:32:14 2006 
     5        Date: Sat Sep  2 22:33:44 2006 
    66        User: ath 
    77        Host: sarge 
     
    133133                            </child> 
    134134                            <child> 
    135                               <widget class="GtkLabel" id="label15"> 
    136                                 <property name="width_request">168</property> 
    137                                 <property name="height_request">16</property> 
    138                                 <property name="visible">True</property> 
    139                                 <property name="xalign">0,000000</property> 
    140                                 <property name="yalign">0,000000</property> 
    141                                 <property name="label" translatable="yes">&lt;span size="x-small" color="Cyan"&gt;REMAINING&lt;/span&gt;</property> 
    142                                 <property name="use_markup">True</property> 
     135                              <widget class="GtkEventBox" id="eventbox_pos_remaining"> 
     136                                <property name="width_request">87</property> 
     137                                <property name="height_request">10</property> 
     138                                <property name="visible">True</property> 
     139                                <property name="visible_window">False</property> 
     140                                <child> 
     141                                  <widget class="GtkLabel" id="label_pos_remaining"> 
     142                                    <property name="width_request">168</property> 
     143                                    <property name="height_request">16</property> 
     144                                    <property name="visible">True</property> 
     145                                    <property name="xalign">0,000000</property> 
     146                                    <property name="yalign">0,000000</property> 
     147                                    <property name="label" translatable="yes">&lt;span size="x-small" color="Cyan"&gt;POSITION&lt;/span&gt;</property> 
     148                                    <property name="use_markup">True</property> 
     149                                  </widget> 
     150                                </child> 
    143151                              </widget> 
    144152                              <packing> 
    145153                                <property name="x">96</property> 
    146                                 <property name="y">24</property> 
     154                                <property name="y">25</property> 
    147155                              </packing> 
    148156                            </child> 
     
    325333                                <property name="n_columns">2</property> 
    326334                                <child> 
    327                                   <widget class="GtkButton" id="button_skip_a"> 
     335                                  <widget class="GtkButton" id="button_skip_f"> 
    328336                                    <property name="visible">True</property> 
    329337                                    <property name="can_focus">True</property> 
    330338                                    <child> 
    331                                       <widget class="GtkImage" id="image10"> 
     339                                      <widget class="GtkImage" id="image7"> 
    332340                                        <property name="visible">True</property> 
    333341                                        <property name="xalign">0,000000</property> 
    334342                                        <property name="yalign">0,000000</property> 
    335                                         <property name="stock">gtk-media-rewind</property> 
    336                                       </widget> 
    337                                     </child> 
    338                                   </widget> 
    339                                   <packing> 
     343                                        <property name="stock">gtk-goto-last</property> 
     344                                      </widget> 
     345                                    </child> 
     346                                  </widget> 
     347                                  <packing> 
     348                                    <property name="left_attach">1</property> 
     349                                    <property name="right_attach">2</property> 
     350                                    <property name="top_attach">2</property> 
     351                                    <property name="bottom_attach">3</property> 
    340352                                    <property name="x_options">GTK_FILL</property> 
    341353                                    <property name="y_options"></property> 
     
    343355                                </child> 
    344356                                <child> 
    345                                   <widget class="GtkButton" id="button_skip_b"> 
     357                                  <widget class="GtkButton" id="button_skip_e"> 
    346358                                    <property name="visible">True</property> 
    347359                                    <property name="can_focus">True</property> 
    348360                                    <child> 
    349                                       <widget class="GtkImage" id="image11"> 
     361                                      <widget class="GtkImage" id="image6"> 
    350362                                        <property name="visible">True</property> 
    351363                                        <property name="xalign">0,000000</property> 
    352364                                        <property name="yalign">0,000000</property> 
    353                                         <property name="stock">gtk-media-forward</property> 
    354                                       </widget> 
    355                                     </child> 
    356                                   </widget> 
    357                                   <packing> 
    358                                     <property name="left_attach">1</property> 
    359                                     <property name="right_attach">2</property> 
    360                                     <property name="x_options">GTK_FILL</property> 
    361                                     <property name="y_options"></property> 
    362                                   </packing> 
    363                                 </child> 
    364                                 <child> 
    365                                   <widget class="GtkButton" id="button_skip_c"> 
    366                                     <property name="visible">True</property> 
    367                                     <property name="can_focus">True</property> 
    368                                     <child> 
    369                                       <widget class="GtkImage" id="image12"> 
    370                                         <property name="visible">True</property> 
    371                                         <property name="xalign">0,000000</property> 
    372                                         <property name="yalign">0,000000</property> 
    373                                         <property name="stock">gtk-media-previous</property> 
    374                                       </widget> 
    375                                     </child> 
    376                                   </widget> 
    377                                   <packing> 
    378                                     <property name="top_attach">1</property> 
    379                                     <property name="bottom_attach">2</property> 
     365                                        <property name="stock">gtk-goto-first</property> 
     366                                      </widget> 
     367                                    </child> 
     368                                  </widget> 
     369                                  <packing> 
     370                                    <property name="top_attach">2</property> 
     371                                    <property name="bottom_attach">3</property> 
    380372                                    <property name="x_options">GTK_FILL</property> 
    381373                                    <property name="y_options"></property> 
     
    405397                                </child> 
    406398                                <child> 
    407                                   <widget class="GtkButton" id="button_skip_e"> 
     399                                  <widget class="GtkButton" id="button_skip_c"> 
    408400                                    <property name="visible">True</property> 
    409401                                    <property name="can_focus">True</property> 
    410402                                    <child> 
    411                                       <widget class="GtkImage" id="image6"> 
     403                                      <widget class="GtkImage" id="image12"> 
    412404                                        <property name="visible">True</property> 
    413405                                        <property name="xalign">0,000000</property> 
    414406                                        <property name="yalign">0,000000</property> 
    415                                         <property name="stock">gtk-goto-first</property> 
    416                                       </widget> 
    417                                     </child> 
    418                                   </widget> 
    419                                   <packing> 
    420                                     <property name="top_attach">2</property> 
    421                                     <property name="bottom_attach">3</property> 
     407                                        <property name="stock">gtk-media-previous</property> 
     408                                      </widget> 
     409                                    </child> 
     410                                  </widget> 
     411                                  <packing> 
     412                                    <property name="top_attach">1</property> 
     413                                    <property name="bottom_attach">2</property> 
    422414                                    <property name="x_options">GTK_FILL</property> 
    423415                                    <property name="y_options"></property> 
     
    425417                                </child> 
    426418                                <child> 
    427                                   <widget class="GtkButton" id="button_skip_f"> 
     419                                  <widget class="GtkButton" id="button_skip_b"> 
    428420                                    <property name="visible">True</property> 
    429421                                    <property name="can_focus">True</property> 
    430422                                    <child> 
    431                                       <widget class="GtkImage" id="image7"> 
     423                                      <widget class="GtkImage" id="image11"> 
    432424                                        <property name="visible">True</property> 
    433425                                        <property name="xalign">0,000000</property> 
    434426                                        <property name="yalign">0,000000</property> 
    435                                         <property name="stock">gtk-goto-last</property> 
     427                                        <property name="stock">gtk-media-forward</property> 
    436428                                      </widget> 
    437429                                    </child> 
     
    440432                                    <property name="left_attach">1</property> 
    441433                                    <property name="right_attach">2</property> 
    442                                     <property name="top_attach">2</property> 
    443                                     <property name="bottom_attach">3</property> 
     434                                    <property name="x_options">GTK_FILL</property> 
     435                                    <property name="y_options"></property> 
     436                                  </packing> 
     437                                </child> 
     438                                <child> 
     439                                  <widget class="GtkButton" id="button_skip_a"> 
     440                                    <property name="visible">True</property> 
     441                                    <property name="can_focus">True</property> 
     442                                    <child> 
     443                                      <widget class="GtkImage" id="image10"> 
     444                                        <property name="visible">True</property> 
     445                                        <property name="xalign">0,000000</property> 
     446                                        <property name="yalign">0,000000</property> 
     447                                        <property name="stock">gtk-media-rewind</property> 
     448                                      </widget> 
     449                                    </child> 
     450                                  </widget> 
     451                                  <packing> 
    444452                                    <property name="x_options">GTK_FILL</property> 
    445453                                    <property name="y_options"></property> 
  • fm_gui/trunk/src/fm_cdj_gui.c

    r103 r110  
    3030static void fm_cdj_gui_button_seek_clicked_cb (GtkButton        *button, 
    3131                                         gpointer       user_data); 
     32static gint eventbox_pos_remaining_button_press_cb (GtkWidget   *widget, 
     33                                         GdkEventButton *event, 
     34                                        gpointer        data); 
    3235 
    3336 
     
    103106        gui->progressbar_pos = glade_xml_get_widget(gui->xml, "progressbar_pos"); 
    104107        gui->label_pos = glade_xml_get_widget(gui->xml, "label_pos"); 
     108        gui->eventbox_pos_remaining = glade_xml_get_widget(gui->xml, "eventbox_pos_remaining"); 
     109        gui->label_pos_remaining = glade_xml_get_widget(gui->xml, "label_pos_remaining"); 
    105110 
    106111 
     
    127132        g_signal_connect(gui->button_skip_e, "clicked", G_CALLBACK(fm_cdj_gui_button_seek_clicked_cb), data); 
    128133        g_signal_connect(gui->button_skip_f, "clicked", G_CALLBACK(fm_cdj_gui_button_seek_clicked_cb), data); 
     134 
     135        g_signal_connect(G_OBJECT(gui->eventbox_pos_remaining), "button_press_event", G_CALLBACK(eventbox_pos_remaining_button_press_cb), data); 
    129136 
    130137        take_away_the_color (gui->layout_display, "#303030"); 
     
    289296        gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(gui->progressbar_pos), ratio); 
    290297 
     298        if (gui->remaining) 
     299                pos = duration - pos; 
     300 
    291301        gdouble sec_fp = pos / 1000000.0; 
    292302        gint64 min = sec_fp / 60.0; 
     
    296306        gint64 msec = sec_fp * 1000.0; 
    297307 
    298         gchar *string = g_strdup_printf("<span size=\"xx-large\" color=\"Cyan\"><b> %02lld:%02lld.%03lld</b></span>", min, sec, msec); 
     308        gchar *string; 
     309        if (gui->remaining) 
     310                string = g_strdup_printf("<span size=\"xx-large\" color=\"Cyan\"><b>-%02lld:%02lld.%03lld</b></span>", min, sec, msec); 
     311        else 
     312                string = g_strdup_printf("<span size=\"xx-large\" color=\"Cyan\"><b> %02lld:%02lld.%03lld</b></span>", min, sec, msec); 
    299313 
    300314        gtk_label_set_markup (GTK_LABEL (gui->label_pos), string); 
     
    370384        } 
    371385} 
     386 
     387 
     388static gint 
     389eventbox_pos_remaining_button_press_cb  (GtkWidget              *widget, 
     390                                        GdkEventButton          *event, 
     391                                        gpointer                user_data) 
     392{ 
     393        FmCDJData *cdata = (FmCDJData *) user_data; 
     394        FmCDJGui *gui = cdata->gui; 
     395 
     396        g_print("click!\n"); 
     397 
     398        gui->remaining = !gui->remaining; 
     399 
     400        if (gui->remaining) { 
     401                gtk_label_set_markup (GTK_LABEL (gui->label_pos_remaining), "<span size=\"x-small\" color=\"Cyan\">REMAINING</span>"); 
     402        } else { 
     403                gtk_label_set_markup (GTK_LABEL (gui->label_pos_remaining), "<span size=\"x-small\" color=\"Cyan\">POSITION</span>"); 
     404        } 
     405         
     406        return FALSE; 
     407} 
  • fm_gui/trunk/src/fm_cdj_gui.h

    r103 r110  
    2929 
    3030        GtkWidget *progressbar_pos; 
     31        GtkWidget *eventbox_pos_remaining; 
     32        GtkWidget *label_pos_remaining; 
    3133        GtkWidget *label_pos; 
    3234 
     
    3941        gboolean playing; 
    4042        gboolean blink_on; 
     43 
     44        gboolean remaining; 
    4145}; 
    4246