XCUI_Base_linux.cpp 709 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include"XCUI_Base.h"
  2. #ifdef XCUI_OS_LINUX
  3. #include<sys/types.h>
  4. #include<sys/ioctl.h>
  5. #include<unistd.h>
  6. #include<termios.h>
  7. #include<stdlib.h>
  8. #include<signal.h>
  9. #include"XCUI.h"
  10. int _plat GetWindowSize(int&wide,int&height){
  11. struct winsize size;
  12. ioctl(STDIN_FILENO,TIOCGWINSZ,&size);
  13. wide=size.ws_col;
  14. height=size.ws_row;
  15. return 0;
  16. }
  17. void _plat WindowSizeChangeHandler();
  18. int _plat SetResizeHook(){
  19. signal(SIGWINCH,WindowSizeChangeHandler);
  20. }
  21. void _plat WindowSizeChangeHandler(){
  22. if(xcui_commondata.flg_onshow){
  23. int a,b;
  24. GetWindowSize(a,b);
  25. xcui_commondata.window.x=a;
  26. xcui_commondata.window.y=b;
  27. Refresh();
  28. }
  29. }
  30. #endif