文章目录
- FLTK - FLTK1.4.1 - demo - bitmap
- 概述
- 笔记
- END
FLTK - FLTK1.4.1 - demo - bitmap
概述
// 功能 : 演示位图数据在按钮上的显示
// * 以按钮为范围或者以窗口为范围移动
// * 上下左右, 文字和图像的相对位置
// 失能按钮,使能按钮
// 知识点
// FLTK可以载入数组中的位图数据到图片控件
// 按钮可以是位图按钮了,由自己载入的位图数据来决定按钮好看不好看
// FLTK是C风格的,用起来,到处都是全局变量和静态变量, 真粗暴。
笔记
// FLTK - FLTK1.4.1 - demo - bitmap// 功能 : 演示位图数据在按钮上的显示
// * 以按钮为范围或者以窗口为范围移动
// * 上下左右, 文字和图像的相对位置
// 失能按钮,使能按钮// 知识点
// FLTK可以载入数组中的位图数据到图片控件
// 按钮可以是位图按钮了,由自己载入的位图数据来决定按钮好看不好看
// FLTK是C风格的,用起来,到处都是全局变量和静态变量, 真粗暴。#include "fltk_test.h"// 如果要将fl demo的实现搬过来测试,就注释掉下面的宏
// #define DONT_USE_FL_DEMO#ifdef DONT_USE_FL_DEMO
int fl_demo_main(int argc, char** argv)
{return 0;
}#else#endif // TEST_FL_DEMO//
// Bitmap label test program for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2021 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
// file is missing or damaged, see the license at:
//
// https://www.fltk.org/COPYING.php
//
// Please see the following page on how to report bugs and issues:
//
// https://www.fltk.org/bugs.php
//#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Bitmap.H>
#include <FL/Fl_Toggle_Button.H>
#include <stdio.h>// include bitmap
// #include "pixmaps/sorceress.xbm"
#include "./fltk_test/sorceress.xbm"Fl_Toggle_Button* leftb, * rightb, * topb, * bottomb, * insideb, * overb, * inactb;
Fl_Button* b;
Fl_Double_Window* w;void button_cb(Fl_Widget*, void*) {int i = 0;if (leftb->value()) i |= FL_ALIGN_LEFT;if (rightb->value()) i |= FL_ALIGN_RIGHT;if (topb->value()) i |= FL_ALIGN_TOP;if (bottomb->value()) i |= FL_ALIGN_BOTTOM;if (insideb->value()) i |= FL_ALIGN_INSIDE;if (overb->value()) i |= FL_ALIGN_TEXT_OVER_IMAGE;b->align(i);if (inactb->value()) b->deactivate();else b->activate();w->redraw();
}int fl_demo_main(int argc, char** argv) {w = new Fl_Double_Window(400, 400);b = new Fl_Button(140, 160, 120, 120, "Bitmap");b->image(new Fl_Bitmap(sorceress_bits, sorceress_width, sorceress_height));leftb = new Fl_Toggle_Button(25, 50, 50, 25, "left");leftb->callback(button_cb);rightb = new Fl_Toggle_Button(75, 50, 50, 25, "right");rightb->callback(button_cb);topb = new Fl_Toggle_Button(125, 50, 50, 25, "top");topb->callback(button_cb);bottomb = new Fl_Toggle_Button(175, 50, 50, 25, "bottom");bottomb->callback(button_cb);insideb = new Fl_Toggle_Button(225, 50, 50, 25, "inside");insideb->callback(button_cb);overb = new Fl_Toggle_Button(25, 75, 100, 25, "text over");overb->callback(button_cb);inactb = new Fl_Toggle_Button(125, 75, 100, 25, "inactive");inactb->callback(button_cb);w->resizable(w);w->end();w->show(argc, argv);return Fl::run();
}