Non reinvents the DAW. Powerful enough to form a complete studio, fast and light enough to run on low-end hardware like the eeePC or Raspberry Pi, and so reliable that it can be used live https://non.tuxfamily.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

focus_frame.C 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /*******************************************************************************/
  2. /* Copyright (C) 2012 Jonathan Moore Liles */
  3. /* */
  4. /* This program is free software; you can redistribute it and/or modify it */
  5. /* under the terms of the GNU General Public License as published by the */
  6. /* Free Software Foundation; either version 2 of the License, or (at your */
  7. /* option) any later version. */
  8. /* */
  9. /* This program is distributed in the hope that it will be useful, but WITHOUT */
  10. /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
  11. /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
  12. /* more details. */
  13. /* */
  14. /* You should have received a copy of the GNU General Public License along */
  15. /* with This program; see the file COPYING. If not,write to the Free Software */
  16. /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  17. /*******************************************************************************/
  18. #include <FL/Fl.H>
  19. #include <FL/fl_draw.H>
  20. void
  21. draw_focus_frame ( int x, int y, int w, int h, Fl_Color c )
  22. {
  23. fl_push_clip( x, y, w, h );
  24. // fl_color( fl_color_average( FL_GRAY, c, 0.50 ) );
  25. /* fl_color( fl_color_add_alpha( c, 100 ) ); */
  26. /* fl_line_style( FL_DASH, 2 ); */
  27. /* fl_rect( x, y, w, h ); */
  28. fl_line_style( FL_SOLID, 3 );
  29. fl_color( c );
  30. int l = 15;
  31. fl_line( x, y, x + l, y );
  32. fl_line( x, y + l, x, y );
  33. fl_line( x + w - 1, y, x + w - l - 1, y );
  34. fl_line( x + w - 1, y, x + w - 1, y + l - 1 );
  35. fl_line( x, y + h - 1, x, y + h - l - 1);
  36. fl_line( x, y + h - 1, x + l, y + h - 1 );
  37. fl_line( x + w - 1, y + h - 1, x + w - 1, y + h - l - 1 );
  38. fl_line( x + w - 1, y + h - 1, x + w - l, y + h - 1 );
  39. fl_line_style( FL_SOLID, 0 );
  40. fl_pop_clip();
  41. }
  42. void
  43. draw_selection_frame ( int x, int y, int w, int h, Fl_Color c )
  44. {
  45. fl_push_clip( x, y, w, h );
  46. fl_color( fl_color_average( FL_GRAY, c, 0.50 ) );
  47. /// fl_color( fl_color_add_alpha( c, 100 ) );
  48. fl_line_style( FL_DASH, 2 );
  49. fl_rect( x, y, w, h );
  50. fl_line_style( FL_SOLID, 3 );
  51. fl_color( c );
  52. int l = 15;
  53. fl_line( x, y, x + l, y );
  54. fl_line( x, y + l, x, y );
  55. fl_line( x + w - 1, y, x + w - l - 1, y );
  56. fl_line( x + w - 1, y, x + w - 1, y + l - 1 );
  57. fl_line( x, y + h - 1, x, y + h - l - 1);
  58. fl_line( x, y + h - 1, x + l, y + h - 1 );
  59. fl_line( x + w - 1, y + h - 1, x + w - 1, y + h - l - 1 );
  60. fl_line( x + w - 1, y + h - 1, x + w - l, y + h - 1 );
  61. fl_line_style( FL_SOLID, 0 );
  62. fl_pop_clip();
  63. }
  64. bool
  65. focused_r ( Fl_Widget *w )
  66. {
  67. for ( Fl_Widget *p = Fl::focus(); p; p = p->parent() )
  68. if ( p == w )
  69. return true;
  70. return false;
  71. }