Difference between revisions of "Excellence IRC Logs 20113 - OOP344"

From CDOT Wiki
Jump to: navigation, search
(Created page with 'Sandip> hi <cap6> I'm responding, but it doesnt seem to be going through <cap6> _flags is an unsigned int so there's 32 bits <cap6> if selected = true set the _cnt bit in _flags …')
(Replaced content with 'File:log.jpg')
Line 1: Line 1:
Sandip> hi
<cap6> I'm responding, but it doesnt seem to be going through
<cap6> _flags is an unsigned int so there's 32 bits
<cap6> if selected = true set the _cnt bit in _flags to 1
<Sandip> and what he meant by update pattern ?
<cap6> say for instance the bits in _flags is 000000000001110000001111
<cap6> every 1 in that pattern matches up with a checked checkmark
<Sandip> ok
<Sandip> then
<cap6> the full line would be
<cap6> if (selected==true) _flags = _flags
<cap6> dammnit
<cap6> if (selected==true) _flags = _flags | 1 << _cnt;
<cap6> that will update the bit pattern
<Sandip> _cnt is the bit we ARE looking at you mean  ?
<cap6> _cnt is how many checkmarks we've already added so by leftshifting _cnt times you set the correct bit
<Sandip> Can you be able to correct my code ? As this function is the main function
* [cap6] (~cap6@bas1-aurora91-3096739336.dsl.bell.ca): ...
* [cap6] #seneca-oop344
* [cap6] holmes.freenode.net :London, UK
* [cap6] idle 00:01:30, signon: Tue Dec 06 18:21:23
* [cap6] is logged in as cap6
* [cap6] End of WHOIS list.
<Sandip> I am quite understanding what your saying now
<Sandip> we got 32 checkbox
<Sandip> and when we click on any of them we have to update bit pattern according to
<cap6> yup you have to change the bit that corresponds to the clicked checkmark
<Sandip> shoudn't it be like this if (selected==true) _flags = _flags | 1 << (_cnt - 1);
<cap6> it all depends on when you increase _cnt
<cap6> if you dont increase _cnt till the very end of the function then you dont need the -1
<Sandip> so can you go into my branch and pick checklist folder and edit that function for me and commit
<cap6> alright
<Sandip> so that credit will goes to your account
<Sandip> as you helped me doing this function
<Sandip> still when i run my code I am getting wired errors ?
<cap6> the only problem that I'm getting is with draw
<cap6> and that's only because it hasnt been written yet
<cap6> I committed a working add to your branch
<Sandip> well we just need to call draw function from chekmarks thats it
<Sandip> I already done that
<cap6> no
<cap6> by saying draw(fn);
<Sandip> ya
<Sandip> I did that
<cap6> you've created infinite recursion
<Sandip> didnt you see that
<Sandip> I am done with all of other functions
<Sandip> ohh
<Sandip> I seee thats why i am getting weird erros
<cap6> you're calling CChecklist::draw(fn) within CChecklist::draw(fn)
<Sandip> should I have to create my own draw function
<cap6> o yeah
<cap6> you have to draw each checkmark
<cap6> and call CFrame::draw();
<Sandip> the way you did in checkmark class right ?
<cap6> for each _checkmarks you just call their draw()
<cap6> _checkmarks[i]->draw();
<Sandip> so I go through  all check mark using _cur variable and then call that function
<Sandip> right ?
<cap6> you can just use i
<cap6> and make a for loop
<Sandip> ok I do that and let you know
<cap6> k
<Sandip> ya it draws the checkmarks but at the end gives some violation error
<Sandip> Unhandled exception ?
<cap6> you probably tried to draw a checkmark that wasnt there
<cap6> like you went past _cnt
<Sandip> ok
<Sandip> ya your right ?
<Sandip> fixed that
<Sandip> I got a great help from you
<cap6> np
<Sandip> be right here. I will come after fixing some of the things and will let you know for some other help I need. One more thing we should update our team page with our chat log
<cap6> I dont think we can link the chat if it's private like this
<Sandip> why so
<Sandip> I can take either screen shot or copy all our chat
<cap6> that's true I guess
<cap6> didnt think about that
<Sandip> well tell me draw function accept parameter fn
<Sandip> what is that
<Sandip> do we have to use fn or _cnt ?
<Sandip> to draw checklist
<cap6> you can just leave it blank
<cap6> it doesnt affect the checklist
<Sandip> I used _cnt for now
<cap6> cdialog.draw is that only one that actually uses the fn parameter
<Sandip> I dont know I think I have some bugs in my edit function when I try to select another checkmarks loop goes infinite
<cap6> could be a bunch of different things
<Sandip> what could be the reason ?
<cap6> Where's the infinite loop actually happening?
<Sandip> Inside edit function
<Sandip> take a look to my code
<Sandip> I have written key = edit();
<Sandip> might be that causes to happen infinite looping
<Sandip> as I am already inside the edit function
<cap6> yeah you cant do that
<cap6> key = _checkmarks[_cur].edit()
<Sandip> I tried that
<Sandip> but that gives me an error
<Sandip> I used console.getKey();
<cap6> that's different
<cap6> you have to call the checkmark edit
<Sandip> but why ? as your already inside your edit function
<Sandip> you just need to grab a key
<cap6> you're in the checklist edit not the checkmark's edit
<Sandip> key = _checkmarks[_cur]->edit()
<Sandip> this line causes an error to occur
<cap6> what's the error?
<Sandip> access violation when I hit enter
<Sandip> when i hit enter/left/right any key
<Sandip> i got access violation error
<cap6> I'm not sure what's causing it
<cap6> o
<cap6> _checkmarks[i] became null somehow
<Sandip> ok tell me when I go through all check marks how do I make them checked or unchecked
<Sandip> using _flags ?
<cap6> _checkmarks[i]->checked(true or false)
<cap6> then you have to update the _flag
<Sandip> _flags = _checkmarks[i]->checked() ? 1: 0;
<Sandip> right
<cap6> no
<cap6> you have to use bitwise operators
<Sandip> _flags = 1 << _cur;
<cap6> _flags = _flags ^ 1<<_cur;
<cap6> that will flip the bit no matter what it was
<Sandip> then it would also affect the others
<cap6> nope
<cap6> it exclusive ORs it
<Sandip> ok now i would be able to go to the first check mark
<cap6> o the first checked checkmark?
<Sandip> the problem that I am getting now is when I hit space it does select the check mark but when I hit up or down key it doesnt go to the next one
<Sandip> ya
<cap6> can you commit it
<Sandip> ok
<Sandip> now I have committed all of my changes
<cap6> k
<Sandip> you can take a look at it
<cap6> one thing you need to take out is your default part of the case
<cap6> you dont want to exit as a default
<Sandip> ok
<cap6> and you dont move through the list because you never increase or decrease cur in your down/up cases
<Sandip> I do I mean I set down = 1 or 0 so that when it comes inside the switch by default it goes into  case 0
<Sandip> where I increase or decrease them
<cap6> it doesnt work like that
<Sandip> let me try what your saying
<cap6> you have to increase and decrease in the up/down cases
<Sandip> ya your right
<cap6> I think you can take that "0" case out
<Sandip> ok I did it now when I press right or down continue then it gives me violation error
<Sandip> I think this is because _cur exceeds it limit right ?
<cap6> yeah
<cap6> o
<Sandip> how do I check to see that _cur is the last one ?
<cap6> you have to use _cnt not 32
<Sandip> If i use _cnt only then it would stop at 3rd position only
<cap6> _cnt should be 7
<Sandip> well we cant hard code it
<Sandip> dont you think so ?
<cap6> you cant hard code it
<cap6> _cnt should be 7 and it shouldnt be stopping at the 3rd one
<Sandip> I have committed my code take a look at it and once you solved commit it back
<Sandip> I think I am very close to finish everything up
<cap6> you have no condition for the down/right one
<cap6> it just says _cur
<Sandip> (_cur) ? (done = true) ? _cur++;
<cap6> (_cur >= _cnt-1)? (done = true) : _cur++;
<Sandip> this is the condition I set it
<cap6> that's what it should be
<Sandip> awesome
<cap6> your space case isnt correct
<Sandip> did you committed your changes
<cap6> no
<Sandip> or should I commit
<cap6> you can just do it
<Sandip> ok
<Sandip> now it says that it is a radio list but still I can be able to select all of them ?
<Sandip> even if i had a condition inside of my edit function
<Sandip> when you hit space it checks that is it a radio list or simple check list by calling a radio() function
<cap6> your conditions arent correct
<Sandip> then according to your suggestion i am selecting the current one and setting others to 0
<Sandip> why is so ?
<Sandip> radio() checks that it is a radio list or not
<Sandip> am I correct ?
<cap6> it does
<cap6> you can also just use _radio
<Sandip> then
<Sandip> ?
<cap6> in your for loop you have to decheck all the checkmarks
<cap6> then set _flags to 0
<Sandip> _flags = _flags ^ 1<<_cur
<cap6> that works for when it's not radio
<Sandip> ok
<Sandip> i check it with another condition
<cap6> you also have to change the checked value of the checkmark object
<Sandip> what is that mean ?
<Sandip> checkmark object ?
<cap6> _checkmarks[i]->checked(false)
<cap6> I added a txt file to your branch that has what I think the space case should be
<cap6> I'll be back in a couple mins
<Sandip> you there
<Sandip> hey
<Sandip> you there
<Sandip>    void* data();
<Sandip> returns the bit pattern held in _flags.
<Sandip> make sure _flags are updated to the status of the _checkmarks
<Sandip> This is the final question

Revision as of 22:10, 6 December 2011