X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FVideo.cc;h=0130d695f0900ce912069c1446fb824c545f0f8e;hp=c41517e51c87601ff96bd25f1c63ba3e83dcfcb1;hb=16d1a05b0777e97a45c48e2874aa4e5cc791282e;hpb=15cd32dc28e7fa5997d9850d7e10b889f69a7cae diff --git a/src/Moof/Video.cc b/src/Moof/Video.cc index c41517e..0130d69 100644 --- a/src/Moof/Video.cc +++ b/src/Moof/Video.cc @@ -28,6 +28,8 @@ #include +#include + #include "Dispatcher.hh" #include "Serializable.hh" #include "Settings.hh" @@ -39,41 +41,29 @@ namespace Mf { Video::Video() { - std::string caption; - if (Settings::instance().get("video.caption", caption)) - { - init(attribs_, caption); - } - else - { - init(attribs_, "Untitled"); - } + init(attribs_); } -Video::Video(const Attributes& attribs, const std::string& caption) +Video::Video(const Attributes& attribs) { - init(attribs, caption); + init(attribs); } -Video::Video(const Attributes& attribs) +Video::Video(const std::string& caption, const std::string& icon) { - std::string caption; - if (Settings::instance().get("video.caption", caption)) + if (attribs_.caption == "Untitled") { - init(attribs, caption); + attribs_.caption = caption; } - else + if (attribs_.icon == "") { - init(attribs, "Untitled"); + attribs_.icon = icon; } -} -Video::Video(const std::string& caption) -{ - init(attribs_, caption); + init(attribs_); } -void Video::init(const Attributes& attribs, const std::string& caption) +void Video::init(const Attributes& attribs) { context_ = 0; flags_ = 0; @@ -82,7 +72,8 @@ void Video::init(const Attributes& attribs, const std::string& caption) setFull(attribs.fullscreen); setResizable(attribs.resizable); setOpenGLAttributes(); - setCaption(caption); + setCaption(attribs.caption); + setIcon(); setCursorVisible(attribs.cursorVisible); setCursorGrab(attribs.cursorGrab); setVideoMode(attribs.mode); @@ -163,14 +154,26 @@ bool Video::iconify() void Video::setCaption(const std::string& caption) { + attribs_.caption = caption; SDL_WM_SetCaption(caption.c_str(), 0); } +void Video::setIcon() +{ + if (attribs_.icon != "") + { + SDL_Surface* icon = IMG_Load(attribs_.icon.c_str()); + if (icon) + { + SDL_WM_SetIcon(icon, 0); + SDL_FreeSurface(icon); + } + } +} + std::string Video::getCaption() const { - char* str; - SDL_WM_GetCaption(&str, 0); - return std::string(str); + return attribs_.caption; } @@ -331,6 +334,12 @@ Video::Attributes::Attributes() Settings::instance().get("video.swapcontrol", swapControl); Settings::instance().get("video.hardwareonly", hardwareonly); + if (!Settings::instance().get("video.caption", caption)) + { + caption = "Untitled"; + } + Settings::instance().get("video.icon", icon); + std::vector dimensions; Settings::instance().get("video.mode", dimensions); if (dimensions.size() > 0) dimensions[0]->get(mode[0]);