comparison src/audacious/ui_playlist.c @ 2527:05c841971f9f trunk

[svn] - playlist editor: use SkinnedWindow provided GC.
author nenolod
date Thu, 15 Feb 2007 00:45:32 -0800
parents 319b10203d7c
children 60f2787cc7fd
comparison
equal deleted inserted replaced
2526:23ef53e234bc 2527:05c841971f9f
63 PlayList_List *playlistwin_list = NULL; 63 PlayList_List *playlistwin_list = NULL;
64 PButton *playlistwin_shade, *playlistwin_close; 64 PButton *playlistwin_shade, *playlistwin_close;
65 65
66 static GdkPixmap *playlistwin_bg; 66 static GdkPixmap *playlistwin_bg;
67 static GdkBitmap *playlistwin_mask = NULL; 67 static GdkBitmap *playlistwin_mask = NULL;
68 static GdkGC *playlistwin_gc;
69 68
70 static gboolean playlistwin_hint_flag = FALSE; 69 static gboolean playlistwin_hint_flag = FALSE;
71 70
72 static GtkWidget *playlistwin_infopopup = NULL; 71 static GtkWidget *playlistwin_infopopup = NULL;
73 static guint playlistwin_infopopup_sid = 0; 72 static guint playlistwin_infopopup_sid = 0;
1349 gtk_window_has_toplevel_focus(GTK_WINDOW(playlistwin)) || 1348 gtk_window_has_toplevel_focus(GTK_WINDOW(playlistwin)) ||
1350 !cfg.dim_titlebar; 1349 !cfg.dim_titlebar;
1351 1350
1352 if (cfg.playlist_shaded) { 1351 if (cfg.playlist_shaded) {
1353 skin_draw_playlistwin_shaded(bmp_active_skin, 1352 skin_draw_playlistwin_shaded(bmp_active_skin,
1354 playlistwin_bg, playlistwin_gc, 1353 playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1355 playlistwin_get_width(), focus); 1354 playlistwin_get_width(), focus);
1356 } 1355 }
1357 else { 1356 else {
1358 skin_draw_playlistwin_frame(bmp_active_skin, 1357 skin_draw_playlistwin_frame(bmp_active_skin,
1359 playlistwin_bg, playlistwin_gc, 1358 playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1360 playlistwin_get_width(), 1359 playlistwin_get_width(),
1361 cfg.playlist_height, focus); 1360 cfg.playlist_height, focus);
1362 } 1361 }
1363 } 1362 }
1364 1363
1501 { 1500 {
1502 /* This function creates the custom widgets used by the playlist editor */ 1501 /* This function creates the custom widgets used by the playlist editor */
1503 1502
1504 /* text box for displaying song title in shaded mode */ 1503 /* text box for displaying song title in shaded mode */
1505 playlistwin_sinfo = 1504 playlistwin_sinfo =
1506 create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1505 create_textbox(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1507 4, 4, playlistwin_get_width() - 35, TRUE, SKIN_TEXT); 1506 4, 4, playlistwin_get_width() - 35, TRUE, SKIN_TEXT);
1508 1507
1509 playlistwin_set_sinfo_font(cfg.playlist_font); 1508 playlistwin_set_sinfo_font(cfg.playlist_font);
1510 1509
1511 if (!cfg.playlist_shaded) 1510 if (!cfg.playlist_shaded)
1513 1512
1514 /* shade/unshade window push button */ 1513 /* shade/unshade window push button */
1515 if (cfg.playlist_shaded) 1514 if (cfg.playlist_shaded)
1516 playlistwin_shade = 1515 playlistwin_shade =
1517 create_pbutton(&playlistwin_wlist, playlistwin_bg, 1516 create_pbutton(&playlistwin_wlist, playlistwin_bg,
1518 playlistwin_gc, playlistwin_get_width() - 21, 3, 1517 SKINNED_WINDOW(playlistwin)->gc, playlistwin_get_width() - 21, 3,
1519 9, 9, 128, 45, 150, 42, 1518 9, 9, 128, 45, 150, 42,
1520 playlistwin_shade_toggle, SKIN_PLEDIT); 1519 playlistwin_shade_toggle, SKIN_PLEDIT);
1521 else 1520 else
1522 playlistwin_shade = 1521 playlistwin_shade =
1523 create_pbutton(&playlistwin_wlist, playlistwin_bg, 1522 create_pbutton(&playlistwin_wlist, playlistwin_bg,
1524 playlistwin_gc, playlistwin_get_width() - 21, 3, 1523 SKINNED_WINDOW(playlistwin)->gc, playlistwin_get_width() - 21, 3,
1525 9, 9, 157, 3, 62, 42, playlistwin_shade_toggle, 1524 9, 9, 157, 3, 62, 42, playlistwin_shade_toggle,
1526 SKIN_PLEDIT); 1525 SKIN_PLEDIT);
1527 1526
1528 playlistwin_shade->pb_allow_draw = FALSE; 1527 playlistwin_shade->pb_allow_draw = FALSE;
1529 1528
1530 /* close window push button */ 1529 /* close window push button */
1531 playlistwin_close = 1530 playlistwin_close =
1532 create_pbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1531 create_pbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1533 playlistwin_get_width() - 11, 3, 9, 9, 1532 playlistwin_get_width() - 11, 3, 9, 9,
1534 cfg.playlist_shaded ? 138 : 167, 1533 cfg.playlist_shaded ? 138 : 167,
1535 cfg.playlist_shaded ? 45 : 3, 52, 42, 1534 cfg.playlist_shaded ? 45 : 3, 52, 42,
1536 playlistwin_hide, SKIN_PLEDIT); 1535 playlistwin_hide, SKIN_PLEDIT);
1537 playlistwin_close->pb_allow_draw = FALSE; 1536 playlistwin_close->pb_allow_draw = FALSE;
1538 1537
1539 /* playlist list box */ 1538 /* playlist list box */
1540 playlistwin_list = 1539 playlistwin_list =
1541 create_playlist_list(&playlistwin_wlist, playlistwin_bg, 1540 create_playlist_list(&playlistwin_wlist, playlistwin_bg,
1542 playlistwin_gc, 12, 20, 1541 SKINNED_WINDOW(playlistwin)->gc, 12, 20,
1543 playlistwin_get_width() - 31, 1542 playlistwin_get_width() - 31,
1544 cfg.playlist_height - 58); 1543 cfg.playlist_height - 58);
1545 playlist_list_set_font(cfg.playlist_font); 1544 playlist_list_set_font(cfg.playlist_font);
1546 1545
1547 /* playlist list box slider */ 1546 /* playlist list box slider */
1548 playlistwin_slider = 1547 playlistwin_slider =
1549 create_playlistslider(&playlistwin_wlist, playlistwin_bg, 1548 create_playlistslider(&playlistwin_wlist, playlistwin_bg,
1550 playlistwin_gc, playlistwin_get_width() - 15, 1549 SKINNED_WINDOW(playlistwin)->gc, playlistwin_get_width() - 15,
1551 20, cfg.playlist_height - 58, playlistwin_list); 1550 20, cfg.playlist_height - 58, playlistwin_list);
1552 /* track time (minute) */ 1551 /* track time (minute) */
1553 playlistwin_time_min = 1552 playlistwin_time_min =
1554 create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1553 create_textbox(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1555 playlistwin_get_width() - 82, 1554 playlistwin_get_width() - 82,
1556 cfg.playlist_height - 15, 15, FALSE, SKIN_TEXT); 1555 cfg.playlist_height - 15, 15, FALSE, SKIN_TEXT);
1557 1556
1558 /* track time (second) */ 1557 /* track time (second) */
1559 playlistwin_time_sec = 1558 playlistwin_time_sec =
1560 create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1559 create_textbox(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1561 playlistwin_get_width() - 64, 1560 playlistwin_get_width() - 64,
1562 cfg.playlist_height - 15, 10, FALSE, SKIN_TEXT); 1561 cfg.playlist_height - 15, 10, FALSE, SKIN_TEXT);
1563 1562
1564 /* playlist information (current track length / total track length) */ 1563 /* playlist information (current track length / total track length) */
1565 playlistwin_info = 1564 playlistwin_info =
1566 create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1565 create_textbox(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1567 playlistwin_get_width() - 143, 1566 playlistwin_get_width() - 143,
1568 cfg.playlist_height - 28, 90, FALSE, SKIN_TEXT); 1567 cfg.playlist_height - 28, 90, FALSE, SKIN_TEXT);
1569 1568
1570 /* mini play control buttons at right bottom corner */ 1569 /* mini play control buttons at right bottom corner */
1571 1570
1572 /* rewind button */ 1571 /* rewind button */
1573 playlistwin_srew = 1572 playlistwin_srew =
1574 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1573 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1575 playlistwin_get_width() - 144, 1574 playlistwin_get_width() - 144,
1576 cfg.playlist_height - 16, 8, 7, local_playlist_prev); 1575 cfg.playlist_height - 16, 8, 7, local_playlist_prev);
1577 1576
1578 /* play button */ 1577 /* play button */
1579 playlistwin_splay = 1578 playlistwin_splay =
1580 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1579 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1581 playlistwin_get_width() - 138, 1580 playlistwin_get_width() - 138,
1582 cfg.playlist_height - 16, 10, 7, mainwin_play_pushed); 1581 cfg.playlist_height - 16, 10, 7, mainwin_play_pushed);
1583 1582
1584 /* pause button */ 1583 /* pause button */
1585 playlistwin_spause = 1584 playlistwin_spause =
1586 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1585 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1587 playlistwin_get_width() - 128, 1586 playlistwin_get_width() - 128,
1588 cfg.playlist_height - 16, 10, 7, playback_pause); 1587 cfg.playlist_height - 16, 10, 7, playback_pause);
1589 1588
1590 /* stop button */ 1589 /* stop button */
1591 playlistwin_sstop = 1590 playlistwin_sstop =
1592 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1591 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1593 playlistwin_get_width() - 118, 1592 playlistwin_get_width() - 118,
1594 cfg.playlist_height - 16, 9, 7, mainwin_stop_pushed); 1593 cfg.playlist_height - 16, 9, 7, mainwin_stop_pushed);
1595 1594
1596 /* forward button */ 1595 /* forward button */
1597 playlistwin_sfwd = 1596 playlistwin_sfwd =
1598 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1597 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1599 playlistwin_get_width() - 109, 1598 playlistwin_get_width() - 109,
1600 cfg.playlist_height - 16, 8, 7, local_playlist_next); 1599 cfg.playlist_height - 16, 8, 7, local_playlist_next);
1601 1600
1602 /* eject button */ 1601 /* eject button */
1603 playlistwin_seject = 1602 playlistwin_seject =
1604 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1603 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1605 playlistwin_get_width() - 100, 1604 playlistwin_get_width() - 100,
1606 cfg.playlist_height - 16, 9, 7, mainwin_eject_pushed); 1605 cfg.playlist_height - 16, 9, 7, mainwin_eject_pushed);
1607 1606
1608 1607
1609 playlistwin_sscroll_up = 1608 playlistwin_sscroll_up =
1610 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1609 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1611 playlistwin_get_width() - 14, 1610 playlistwin_get_width() - 14,
1612 cfg.playlist_height - 35, 8, 5, 1611 cfg.playlist_height - 35, 8, 5,
1613 playlistwin_scroll_up_pushed); 1612 playlistwin_scroll_up_pushed);
1614 playlistwin_sscroll_down = 1613 playlistwin_sscroll_down =
1615 create_sbutton(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 1614 create_sbutton(&playlistwin_wlist, playlistwin_bg, SKINNED_WINDOW(playlistwin)->gc,
1616 playlistwin_get_width() - 14, 1615 playlistwin_get_width() - 14,
1617 cfg.playlist_height - 30, 8, 5, 1616 cfg.playlist_height - 30, 8, 5,
1618 playlistwin_scroll_down_pushed); 1617 playlistwin_scroll_down_pushed);
1619 1618
1620 } 1619 }
1713 playlistwin_create(void) 1712 playlistwin_create(void)
1714 { 1713 {
1715 playlistwin_create_window(); 1714 playlistwin_create_window();
1716 1715
1717 /* create GC and back pixmap for custom widget to draw on */ 1716 /* create GC and back pixmap for custom widget to draw on */
1718 playlistwin_gc = gdk_gc_new(playlistwin->window);
1719 playlistwin_bg = gdk_pixmap_new(playlistwin->window, 1717 playlistwin_bg = gdk_pixmap_new(playlistwin->window,
1720 playlistwin_get_width(), 1718 playlistwin_get_width(),
1721 playlistwin_get_height_unshaded(), -1); 1719 playlistwin_get_height_unshaded(), -1);
1722 gdk_window_set_back_pixmap(playlistwin->window, playlistwin_bg, 0); 1720 gdk_window_set_back_pixmap(playlistwin->window, playlistwin_bg, 0);
1723 1721